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;

そして、すべてがうまくいくはずです。

...または別のクラス( Guava のCharsetsクラスなど)を意味する場合は、代わりにそのクラスのインポートを追加する必要があります。

于 2012-06-30T20:48:39.953 に答える