简体   繁体   English

Arraylist或List中的Java对象

[英]Java object in Arraylist or List

I want to know how I can use my object ObjetTWS with the parameter of my function ObjectTWS() . 我想知道如何将我的对象ObjetTWS与我的函数ObjectTWS()的参数一起使用。 And how I can put the object in a Arraylist or a List . 以及如何将对象放在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){

I already try this but it says ObjetTWS undefined : 我已经尝试了这个,但它说ObjetTWS未定义:

ObjetTWS obj  = new ObjetTWS();

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

You already defined a constructor: 您已经定义了一个构造函数:

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

That makes the JVM to omit the default constructor, so you must add it manually 这使得JVM省略了默认构造函数,因此您必须手动添加它

public ObjetTWS() {}

Or declare object with given constructor: 或使用给定的构造函数声明对象:

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

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

First you should initialize the list 首先,您应该初始化列表

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

Then you try to add elements into it. 然后尝试在其中添加元素。

And also try to keep your default constructor 并且还尝试保留默认构造函数

As you are overriding it by arguments constructor 当你通过参数构造函数覆盖它时

public ObjectTWS() {}

By default, objects have a parameter less constructor (which is the one you are calling in your second code snippet). 默认情况下,对象具有参数less constructor(这是您在第二个代码段中调用的那个)。 This however, gets replaced with other constructors when you provide them, which is what you are doing in your first example. 但是,当您提供它们时,它会其他构造函数替换 ,这正是您在第一个示例中所做的。

To solve this problems, you have 2 options: 要解决这个问题,您有两个选择:

  1. Add a parameter less constructor in your ObjetTWS class: public ObjeTWS() {} //Do any initialization here ObjetTWS类中添加一个参数less constructor: public ObjeTWS() {} //Do any initialization here

  2. In your second code sample, use this: ObjetTWS obj = new ObjetTWS(p_nom, p_type, p_jobAmont, p_jobAval); 在第二个代码示例中,使用: ObjetTWS obj = new ObjetTWS(p_nom, p_type, p_jobAmont, p_jobAval);

public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval) what you have here is a parameterized constructor. public ObjetTWS(String p_nom, String p_type,String p_jobAmont,String p_jobAval)这里有一个参数化构造函数。 However in the code you are trying to do this ObjetTWS obj = new ObjetTWS(); 但是在代码中你试图这样做ObjetTWS obj = new ObjetTWS();

What it tell us is that you don't have a constructor with no arguments. 它告诉我们的是你没有没有参数的构造函数。

So, to be able to do this, you need to add another constructor to your class, which should look like this : 所以,为了能够做到这一点,你需要在你的类中添加另一个构造函数,它应该如下所示:

public ObjectTWS() {
    // Any code logic
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM