Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java协议缓冲区-反射_Java_Reflection_Protocol Buffers - Fatal编程技术网

Java协议缓冲区-反射

Java协议缓冲区-反射,java,reflection,protocol-buffers,Java,Reflection,Protocol Buffers,我不熟悉协议缓冲区和探索反射方法。我看到一个方法GeDeaveCurnType()在C++中获得反射接口,但是,在java中我找不到类似的方法。有人知道如何在Java中获取反射接口吗?可以在中找到反射接口。通常,人们会使用实例访问接口 public static void main(String[] $) { Class clazz = String.class; System.out.println(clazz.getName()); // "java.lang.String"

我不熟悉协议缓冲区和探索反射方法。我看到一个方法GeDeaveCurnType()在C++中获得反射接口,但是,在java中我找不到类似的方法。有人知道如何在Java中获取反射接口吗?

可以在中找到反射接口。通常,人们会使用实例访问接口

public static void main(String[] $)
{
    Class clazz = String.class;
    System.out.println(clazz.getName()); // "java.lang.String"
}

你能描述一下你为什么要这么做吗???,我知道我会考虑到这一点来调整答案

  • 正如其他人所指出的,您可以在java中的任何类上使用反射
  • java版本提供了。取决于你想做什么,你可能会发现你在追求什么。该类允许您使用proto描述符读取任意协议缓冲区,并通过getField方法等访问字段。您将需要proto描述符中的协议缓冲区(您可以使用protoc命令的--descriptor\u set\u out=参数来获取它)
  • 如果不选择rmise来提高速度,protoc命令将生成使用反射的类

与Protobuf-C++“反射”接口相当的Java只是
com.google.Protobuf.Message
接口。所有消息对象都实现了这一点,并且它有一些方法,如
getField()
,可以通过描述符读取任意字段。类似地,所有构建器都实现了
Message.Builder
,它具有
setField()
等等。不像C++,这个功能不被委派给单独的对象。谢谢你,布鲁斯。我检查了一些C++协议缓冲区代码,我能找到一些方法,比如GETRealOfTebug()。然而,我在Java中找不到类似的东西。在Java中,是否有其他方法或其他方法可以实现这种反射?更具体地说,我试图在Java中获得非常类似的方法:)这是否澄清了我想要弄明白的内容?:)另外,我知道标准java提供了反射机制,但是,我正在尝试使用来自协议缓冲区的反射机制。例如,我们有C++中的原型Buff.MeaGe.Engy。但我在Java中找不到这一点,问题不在于Java反射。这是关于协议缓冲区反射的。这个答案是不可能的。