0

import java.nio.charset.Charsets在我的类 UriCodec.java 中,但是当我使用 javac(jdk6) 编译此类错误时。例如:javac UriCodec.java

错误代码:

import java.nio.charset.Charsets;
                       ^
UriCodec.java:140: Can not find symbol
symbol: Variable Charsets
position: class com.android.exchange.utility.UriCodec
        appendEncoded(builder, s, Charsets.UTF_8, false);
                                  ^
UriCodec.java:144: Can not find symbol
symbol: Variable Charsets
position: class com.android.exchange.utility.UriCodec
        appendEncoded(builder, s, Charsets.UTF_8, true);
                                  ^
UriCodec.java:203: Can not find symbol
symbol: Variable Charsets
position: class com.android.exchange.utility.UriCodec
        return decode(s, false, Charsets.UTF_8);
                                ^
UriCodec.java:214: Can not find symbol
symbol: Method toHexString(byte,boolean)
position: class java.lang.Byte
        sb.append(Byte.toHexString(b, true));
                      ^
5 error

我的课:

import java.nio.charset.Charset;
import java.nio.charset.Charsets;
public abstract class UriCodec {


    public final void appendEncoded(StringBuilder builder, String s) {
        appendEncoded(builder, s, Charsets.UTF_8, false);
    }

    public final void appendPartiallyEncoded(StringBuilder builder, String s) {
        appendEncoded(builder, s, Charsets.UTF_8, true);
    }

    public static String decode(String s) {
        return decode(s, false, Charsets.UTF_8);
    }


   public final String encode(String s, Charset charset) {
        // Guess a bit larger for encoded form
        StringBuilder builder = new StringBuilder(s.length() + 16);
        appendEncoded(builder, s, charset, false);
        return builder.toString();
    }
}
4

1 回答 1

13

没有这样的类Charsets。有Charset(单数)但那不是一回事......

我怀疑你收到了这样的消息:

UriCodec.java:1: error: cannot find symbol
import java.nio.charset.Charsets;
                       ^
  symbol:   class Charsets
  location: package java.nio.charset
1 error

当您收到编译器错误时,请阅读它。如果编译器说它找不到符号,那么通常有一个很好的理由 - 所以仔细检查你是否正确拼写了所有内容,并使用了正确的大小写。

将您的导入更改为

import java.nio.charset.Charset;

一切都应该很好。

...或者如果您的意思是不同的Charsets类(例如Guava 中的类),您应该为该类添加一个导入。

于 2012-06-30T20:48:39.953 回答