可以将WHat值赋给此类的变量

时间:2017-02-13 18:50:54

标签: java

我写了下面的java类

public class FileAttachment  implements java.io.Serializable {
private java.lang.String fileName;

private java.lang.String fileExt;

public FileAttachment() {
}

public FileAttachment(
       java.lang.String fileName,
       java.lang.String fileExt) {
       this.fileName = fileName;
       this.fileExt = fileExt;
}


/**
 * Gets the fileName value for this FileAttachment.
 * 
 * @return fileName
 */
public java.lang.String getFileName() {
    return fileName;
}


/**
 * Sets the fileName value for this FileAttachment.
 * 
 * @param fileName
 */
public void setFileName(java.lang.String fileName) {
    this.fileName = fileName;
}


/**
 * Gets the fileExt value for this FileAttachment.
 * 
 * @return fileExt
 */
public java.lang.String getFileExt() {
    return fileExt;
}


/**
 * Sets the fileExt value for this FileAttachment.
 * 
 * @param fileExt
 */
public void setFileExt(java.lang.String fileExt) {
    this.fileExt = fileExt;
}
}

如果我尝试将类初始化为数组,如下所示。我需要为它的变量fileattachments分配什么值。我知道我可以为它分配空值。但是,我想分配除null以外的任何东西。

  FileAttachment[] fileattachments = //what non null value can I assign it ?

2 个答案:

答案 0 :(得分:3)

您可以分配一个新数组,或者您可以使用初始化程序向数组中添加一些元素。

// non-null but empty array
 FileAttachment[] fileattachments = new FileAttachment[10];
// initializer with one element
 FileAttachment[] fileattachments = { new  FileAttachment( "myName", "txt" ) };

为了完整性,Andy指出方法调用也可以。您通常需要一种静态方法来处理此类事情,但如果您非常小心,则实例方法可以正常工作。

FileAttachment[] fileattachments = Utils.genAttachments();

和...

public class Utils {
    public static FileAttachment[] genAttachments() {
        FileAttachment[] retVal = new FileAttachment[100];
        for( int i = 0; i < retVal.length; i++ )
            retVal[i] = new FileAttachment( "MyDoc"+i, "doc" );
        return retVal;
     }
}

答案 1 :(得分:2)

我会使用ArrayList而不是Array,因为如果数组对于容器来说太小,就无法轻松调整数组的大小。

FileAttachment[] fileAttachments = new FileAttachment[5]

以上代码允许您将5个附件放入数组中,但不能再添加,除非您将其重新初始化为new FileAttachment[10]

使用ArrayList,您可以无限添加内容。请参阅以下代码:

List<FileAttachment> fileAttachments = new ArrayList<FileAttachment>();

FileAttachment attachment = new FileAttachment("myFileName", "txt");
fileAttachments.add(attachment);

attachment = new FileAttachment("myOtherFileName", "xls");
fileAttachments.add(attachment):