为什么可以';I从方法声明中单独导入?(java)

为什么可以';I从方法声明中单独导入?(java),java,eclipse,import,base64,decode,Java,Eclipse,Import,Base64,Decode,我写了一个简单的程序来解码一个base64编码的字符串。我使用eclipse搜索了一个方法来实现这一点,发现方法javax.xml.bind.DatatypeConverter.parseBase64Binary(String s)正是这样做的。我发现当我使用该方法的完整位置时,程序运行良好: public static void main(String args[]) { String s = "cGFzc3dvcmQ6IGlsb3ZlbXlzZWxmISEx"; byte[] convert

我写了一个简单的程序来解码一个base64编码的字符串。我使用eclipse搜索了一个方法来实现这一点,发现方法
javax.xml.bind.DatatypeConverter.parseBase64Binary(String s)
正是这样做的。我发现当我使用该方法的完整位置时,程序运行良好:

public static void main(String args[]) {
String s = "cGFzc3dvcmQ6IGlsb3ZlbXlzZWxmISEx";
byte[] converted = javax.xml.bind.DatatypeConverter.parseBase64Binary(s);
System.out.println(new String(converted));
}
但出于某种原因,当我尝试导入位置时,eclipse给了我一个错误:

进口:

import javax.xml.bind.DatatypeConverter.*;
第一个代码中的新行3:

 byte[] converted = javax.xml.bind.DatatypeConverter.parseBase64Binary(s);
我在新行3上遇到错误:

 The method parseBase64Binary(String) is undefined for the type **name of class**

我很乐意提供解释。

您需要执行
静态导入:

import static javax.xml.bind.DatatypeConverter.*;

然后你就能做到:

byte[] converted = parseBase64Binary(s);
更多信息:


删除
javax.xml.bind.DatatypeConverter.*中的
*

import javax.xml.bind.DatatypeConverter;

public class Test {

    public static void main(String[] args)
    {
        String s = "cGFzc3dvcmQ6IGlsb3ZlbXlzZWxmISEx";
        byte[] converted = DatatypeConverter.parseBase64Binary(s);
        System.out.println(new String(converted));
    }
}
然后-

byte[] converted = parseBase64Binary(s);

使用import javax.xml.bind.DatatypeConverter;而不是导入javax.xml.bind.DatatypeConverter.*@antonio我试过了,它给出了相同的错误,无论如何我认为星号是必需的。
import
用于导入类型<代码>导入静态
用于导入静态方法,这就是您在这里尝试的操作。太棒了!成功了!我很乐意提供简短的解释或参考。请查看我提供的链接。:)谢谢!我理解这个问题,程序运行得很好。Np:)我会避免静态导入。它使您的代码更不可读,因为它看起来像您自己的类方法之一。
import static javax.xml.bind.DatatypeConverter.*;
byte[] converted = parseBase64Binary(s);