Java 将项目添加到ProtocolStringList

Java 将项目添加到ProtocolStringList,java,protocol-buffers,Java,Protocol Buffers,我正在尝试将项目添加到ProtocolStringList中。当我使用add函数时,不会返回任何错误,但是当我尝试打印列表时,会得到null值。 我不知道我做错了什么。我尝试将大小打印到,但也打印0。我不知道该怎么办。请帮助。谢谢。 代码如下: public class demo { public static void main(String args[]) { ProtocolStringList s=new ProtocolStringList() {

我正在尝试将项目添加到ProtocolStringList中。当我使用add函数时,不会返回任何错误,但是当我尝试打印列表时,会得到null值。 我不知道我做错了什么。我尝试将大小打印到,但也打印0。我不知道该怎么办。请帮助。谢谢。 代码如下:

public class demo {
    public  static  void main(String args[])
    {
        ProtocolStringList s=new ProtocolStringList() {
            @Override
            public List<ByteString> asByteStringList() {
                return null;
            }

            @Override
            public int size() {
                return 0;
            }

            @Override
            public boolean isEmpty() {
                return false;
            }

            @Override
            public boolean contains(Object o) {
                return false;
            }

            @Override
            public Iterator<String> iterator() {
                return null;
            }

            @Override
            public Object[] toArray() {
                return new Object[0];
            }

            @Override
            public <T> T[] toArray(T[] a) {
                return null;
            }

            @Override
            public boolean add(String s) {
                return false;
            }

            @Override
            public boolean remove(Object o) {
                return false;
            }

            @Override
            public boolean containsAll(Collection<?> c) {
                return false;
            }

            @Override
            public boolean addAll(Collection<? extends String> c) {
                return false;
            }

            @Override
            public boolean addAll(int index, Collection<? extends String> c) {
                return false;
            }

            @Override
            public boolean removeAll(Collection<?> c) {
                return false;
            }

            @Override
            public boolean retainAll(Collection<?> c) {
                return false;
            }

            @Override
            public void clear() {

            }

            @Override
            public String get(int index) {
                return null;
            }

            @Override
            public String set(int index, String element) {
                return null;
            }

            @Override
            public void add(int index, String element) {

            }

            @Override
            public String remove(int index) {
                return null;
            }

            @Override
            public int indexOf(Object o) {
                return 0;
            }

            @Override
            public int lastIndexOf(Object o) {
                return 0;
            }

            @Override
            public ListIterator<String> listIterator() {
                return null;
            }

            @Override
            public ListIterator<String> listIterator(int index) {
                return null;
            }

            @Override
            public List<String> subList(int fromIndex, int toIndex) {
                return null;
            }
        };

        s.add("a");
        s.add("b");
        for(int i=0;i<2;i++)
        {
            System.out.println(s.get(i));//prints null
        }

    }
}
公共类演示{
公共静态void main(字符串参数[])
{
ProtocolStringList s=新ProtocolStringList(){
@凌驾
公共列表asByteStringList(){
返回null;
}
@凌驾
公共整数大小(){
返回0;
}
@凌驾
公共布尔值为空(){
返回false;
}
@凌驾
公共布尔包含(对象o){
返回false;
}
@凌驾
公共迭代器迭代器(){
返回null;
}
@凌驾
公共对象[]toArray(){
返回新对象[0];
}
@凌驾
公共T[]toArray(T[]a){
返回null;
}
@凌驾
公共布尔加法(字符串s){
返回false;
}
@凌驾
公共布尔删除(对象o){
返回false;
}
@凌驾
公共布尔容器(集合c){
返回false;
}
@凌驾
公共布尔addAll(集合c){
返回false;
}
@凌驾
公共布尔保留(集合c){
返回false;
}
@凌驾
公共空间清除(){
}
@凌驾
公共字符串get(int索引){
返回null;
}
@凌驾
公共字符串集(整数索引,字符串元素){
返回null;
}
@凌驾
公共void添加(int索引、字符串元素){
}
@凌驾
删除公共字符串(整型索引){
返回null;
}
@凌驾
public int indexOf(对象o){
返回0;
}
@凌驾
公共int lastIndexOf(对象o){
返回0;
}
@凌驾
公共ListIterator ListIterator(){
返回null;
}
@凌驾
公共ListIterator ListIterator(int索引){
返回null;
}
@凌驾
公共列表子列表(int fromIndex、int toIndex){
返回null;
}
};
s、 添加(“a”);
s、 添加(“b”);

对于(inti=0;i要在Java中将项添加到列表中,需要使用生成器并构建对象

参考指南中有一个示例:

在您的示例中,您的代码应该如下所示:

 s = ProtocolStringList.newBuilder()
       .add("a")
       .add("b")
       .build();

我想你需要删除
new protocolist()
和下一个
};
之后的所有内容,然后再试一次。我删除了它,现在我得到一个错误,ProtocolStringList是抽象的,无法实例化。我得到了它。因为它是一个接口,所以我不能使用new。谢谢@daniu帮助我。
 s = ProtocolStringList.newBuilder()
       .add("a")
       .add("b")
       .build();