【问题标题】:Java object in Arraylist or ListArraylist 或 List 中的 Java 对象
【发布时间】:2015-07-30 22:20:37
【问题描述】:

我想知道如何将我的对象ObjetTWS 与我的函数ObjectTWS() 的参数一起使用。以及如何将对象放入ArraylistList

public class ObjetTWS {

    String nom; 
    List<String> jobAmont; 
    List<String> jobAval; 
    String type;


    public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval){

我已经尝试过了,但上面写着 ObjetTWS undefined :

ObjetTWS obj  = new ObjetTWS();

obj.nom = p_nom;
obj.jobAmont.add(p_jobAmont);
obj.jobAval.add(p_jobAval);
obj.type = p_type;

【问题讨论】:

  • 您是否在某处初始化列表?
  • 是的,但问题出在我创建的对象上。此行的错误 ObjetTWS obj = new ObjetTWS() is constructor ObjetTWS is undefined.
  • @Subas,属性(除非是特殊情况)应该都是私有的,并且访问它们的方式应该始终使用 getter 和 setter 方法。记住它。

标签: java list object arraylist


【解决方案1】:

你已经定义了一个构造函数:

public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval){

这使得JVM省略了默认构造函数,所以你必须手动添加它

public ObjetTWS() {}

或者用给定的构造函数声明对象:

ObjetTWS obj = new ObjetTWS(p_nom, p_type,p_jobAmont, p_jobAval);

【讨论】:

    【解决方案2】:

    首先你应该初始化列表

    public class ObjetTWS {   
        String nom; 
        List<String> jobAmont = new ArrayList<String> (); 
        List<String> jobAval =  new ArrayList<String> (); 
        String type;
    

    然后你尝试向其中添加元素。

    并尽量保留你的默认构造函数

    当您通过参数构造函数覆盖它时

    public ObjectTWS() {}
    

    【讨论】:

    • 抱歉,当您发表评论时,我正在回答我的问题 :)
    【解决方案3】:

    默认情况下,对象有一个无参数构造函数(这是您在第二个代码 sn-p 中调用的构造函数)。但是,当您提供其他构造函数时,它会替换,这就是您在第一个示例中所做的。

    要解决这个问题,你有两个选择:

    1. ObjetTWS 类中添加无参数构造函数:public ObjeTWS() {} //Do any initialization here

    2. 在您的第二个代码示例中,使用以下代码:ObjetTWS obj = new ObjetTWS(p_nom, p_type, p_jobAmont, p_jobAval);

    【讨论】:

      【解决方案4】:

      由于您在类中创建了自己的带参数构造函数,因此默认构造函数根本不起作用,因此您必须使用构造函数传递参数,并在向其添加元素之前初始化 List。

      【讨论】:

        【解决方案5】:

        public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval) 你这里有一个参数化的构造函数。但是在代码中你试图这样做ObjetTWS obj = new ObjetTWS();

        它告诉我们的是你没有没有参数的构造函数。

        因此,为了能够做到这一点,您需要向您的类添加另一个构造函数,它应该如下所示:

        public ObjectTWS() {
            // Any code logic
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-07
          • 1970-01-01
          • 2018-03-27
          • 1970-01-01
          • 2020-05-24
          • 1970-01-01
          相关资源
          最近更新 更多