在此代码中是否有使用“this”的替代方法?

山姆

我有以下代码片段,想知道“this”是如何使用的,以及是否有另一种方法可以实现相同的最终结果。我尝试通过执行 ArrayList a = new ArrayList(); 来生成 ArrayList,但它不包括数字 '1, 2' 并且只有 '4,6'。输出应该是'1, 2, 4, 6'。

我要突出显示我要询问的代码:

int i = 0;
Sequence a = this;

方法:

import java.util.ArrayList;



public class Sequence
{
        private ArrayList<Integer> values;
        public Sequence()
        {
            values = new ArrayList<Integer>();
        }

        public void add(int n)
        {
            values.add(n);
        }

        public String toString()
        {
            return values.toString();
        }

        public Sequence append(Sequence other)
        {
            int i = 0;
            Sequence a = this;

            while(i < other.values.size())
            {
                a.add(other.values.get(i));

                i++;
            }

            return a;

        }
}

测试员/司机:

public class SequenceTester
{
    public static void main(String[] args)
    {

        Sequence obj2 = new Sequence();

        obj2.add(4);
        obj2.add(6);


        Sequence obj = new Sequence();

        obj.add(1);
        obj.add(2);

        Sequence append = obj.append(obj2);

        System.out.println(append);
    }


}
卡米克

想知道如何使用“this”

“this”指的是类的当前实例。

如果有另一种方法可以得到相同的最终结果。

不需要在 append(...) 方法中显式创建 Sequence 变量。

您可以直接调用 add(...) 方法并返回“this”:

    public Sequence append(Sequence other)
    {
        int i = 0;
        //Sequence a = this;

        while(i < other.values.size())
        {
            //a.add(other.values.get(i));
            add(other.values.get(i));

            i++;
        }

        //  return a;
        return this;

    }

类的方法总是对类的当前实例进行操作,因此不需要使用“this”来获取对类的引用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否有使用`udev`的替代方法?

是否有使用编组/解组的替代方法?

是否有使用 HttpUrlConnection 的 AsyncTask 替代方案

是否有使用内部开关盒的良好替代结构?

在此逻辑中两次使用 foreach 的替代方法

是否有使用SFML在后台线程中播放声音的简单方法

在Swing JTable中是否有使用微调器作为编辑器的便捷方法?

是否有使用 python 控制台在 Blender 中安装 tensorflow 的正确方法?

是否有使用Kotlin在Android中创建Parcelable数据类的便捷方法?

是否有使用ECHO命令将文本插入多行文档中的更快方法?

PHP 中是否有使用變量作為類名的全部或部分的方法?

是否有使用Python Openpyxl在Excel中写入数据的巧妙方法?

在 Rails 的模型中是否有使用辅助方法的设计模式?

是否有使用类似Wiki语法的javadoc替代品?

是否有必要将交易记录在此代码中?

导出在此代码中是否有任何用途?

是否有使用Wifi安装Debian的简单方法?

是否有使用Dojo 1.9.1创建按钮的“正确”方法?

是否有使用 with 语句包装类的pythonic方法?

是否有使用模式作为谓词功能的便捷方法?

是否有使用docker compose复制容器的方法?

MySQL中是否有CONCAT()的替代方法?

没有使用Entity Framework Core 3.1在MySql数据库中创建User表(代码优先方法)

在此代码中是否有理由在字符串文字上使用const_cast?

Flutter应用程序中是否有使用Python的方法(例如:TensorFlow或Sci-kit学习库)?

是否有使用swagger.json为Flurl自动生成的代码?

在Java中,是否有替代方法可以对ArrayLists使用stream()?

不推荐使用Spring-Security中的AbstractWebSocketMessageBrokerConfigurer-是否有替代方法?

检查会话 ID 是否在此代码中