天道酬勤,学无止境

方法 emptyIntList() 未定义(The method emptyIntList() is undefined)

问题

我是Google Protobuf 的新手。 尝试使用下面的student.proto文件玩它。

syntax = "proto3";
package rld;

option java_package = "com.rld";
option java_outer_classname = "StudentDTO";

message Student {
    string name = 1;
    int32 roll = 2;  
    repeated int32 mark = 3; //Marks in various subjects
}

message StudentDatabase {
  repeated Student student = 1;
}

然后我尝试使用下面的 Protobuf 编译器命令编译它。 从这里,我下载了编译器。

protoc -I=. --java_out=. ./student.proto

它编译成功并生成StudentDTO.java ,但有错误。 类中有两个方法“ emptyIntList() ”和“ newIntList() ”,但它们没有被定义。

现在我的问题是如何解决这些错误或者我错过了什么?

回答1

作为新手,我似乎忘记在更新Protobuf Compiler更新Google Protobuf Runtime 。 两个版本必须匹配。

这里有2个解决方案。

  1. Maven 用户- 在POM文件中包含以下依赖项。
    <dependency>
      <groupId>com.google.protobuf</groupId>
      <artifactId>protobuf-java</artifactId>
      <version>x.y.z</version>
    </dependency>
  1. 非 Maven 用户- 在类路径中包含protobuf-java-xyzjar

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • The method emptyIntList() is undefined
    I am new to Google Protobuf. Tried to play with it using below student.proto file. syntax = "proto3"; package rld; option java_package = "com.rld"; option java_outer_classname = "StudentDTO"; message Student { string name = 1; int32 roll = 2; repeated int32 mark = 3; //Marks in various subjects } message StudentDatabase { repeated Student student = 1; } Then I tried to compile it using below Protobuf compiler command. From here, I downloaded the compiler. protoc -I=. --java_out=. ./student.proto It compiled successfully and generated StudentDTO.java, but with errors. There are two methods
  • Why is this causing a segmentation fault?
    I've been coding this in project in C++, normally I wouldn't have too much trouble with a segmentation fault, but I'm new to C++. Basically I'm making a pointer to an IntList and calling prepend() to make a IntList from the pointer. The problem is when prepend is called it is getting stuck somewhere in the header file an justd exits out. I can't tell what is causing this and gdb tells me it just gets stuck at the header. Help would be really appreciated, like a hint or clue to what I'm doing wrong. Thank you. IntList.h: #ifndef _INTLIST_H #define _INTLIST_H #include <string> #include <cstring>
  • 对象转储类(object dumper class)
    问题 我正在寻找一个可以以类似于以下格式输出对象及其所有叶值的类: User - Name: Gordon - Age : 60 - WorkAddress - Street: 10 Downing Street - Town: London - Country: UK - HomeAddresses[0] ... - HomeAddresses[1] ... (或更清晰的格式)。 这等效于: public class User { public string Name { get;set; } public int Age { get;set; } public Address WorkAddress { get;set; } public List<Address> HomeAddresses { get;set; } } public class Address { public string Street { get;set; } public string Town { get;set; } public string Country { get;set; } } PropertyGrid控件的一种字符串表示形式,不必为每种类型实现大量设计器。 PHP可以执行此操作,称为var_dump。 我不想使用手表,因为这是用于打印。 有人能指出我类似的东西吗? 或者,写一个赏金。
  • 在 C# 中将整个对象转储到日志的最佳方法是什么?(What is the best way to dump entire objects to a log in C#?)
    问题 因此,对于在运行时查看当前对象的状态,我真的很喜欢Visual Studio Instant窗口给我的东西。 做一个简单的 ? objectname 会给我一个格式很好的对象“转储”。 有没有一种简单的方法可以在代码中做到这一点,所以我可以在记录时做类似的事情? 回答1 您可以基于 Linq 示例附带的 ObjectDumper 代码。 还可以查看此相关问题的答案以获取样本。 回答2 对于更大的对象图,我第二次使用 Json,但策略略有不同。 首先,我有一个易于调用的静态类,并带有包装Json转换的静态方法(请注意:可以使它成为扩展方法)。 using Newtonsoft.Json; public static class F { public static string Dump(object obj) { return JsonConvert.SerializeObject(obj); } } 然后在您的Immediate Window , var lookHere = F.Dump(myobj); lookHere 将自动显示在带有 $ 前缀的Locals窗口中,或者您可以向其中添加手表。 在检查器中Value列的右侧,有一个放大镜,旁边有一个下拉插入符号。 选择下拉插入符号并选择 Json 可视化工具。 我正在使用 Visual Studio 2013。 回答3
  • 未定义 Base 类型的子方法(Child method is undefined for the type Base)
    问题 public class Base { public String Method1() { System.out.println("Inside Base method 1"); return ""; } } class Child extends Base { static Base o = null; public String Method1() { System.out.println("Inside Base method 1"); return ""; } public String Method2() { return "Cant be called with base reference"; } public static void main(String[] args) { // TODO Auto-generated method stub Base base = new Child(); base.Method1(); base.Method2();***(Error : **The method Method2() is undefined for the type Base**)*** } } 正如代码所暗示的那样,我想知道,在内存分配中实际发生了什么,隐藏了 Base 调用 Child 的额外方法以及它被调用的内容,并且有没有一种通过 Base
  • Eclipse告诉我一个方法实际上未定义时未定义(Eclipse is telling me a method is undefined when it clearly is in fact defined)
    问题 我正在使用RAD 7.5。 我正在将一个程序包从一个Web项目导入另一个项目。 我实例化该类并尝试使用其方法之一,但是却收到该方法未定义的生成错误。 该方法是公开的。 除此方法外,所有其他方法均有效。 我要从中导入的项目已正确构建。 我尝试删除两个项目,再次从版本控制中获取它们,然后重新构建它们。 到底是什么问题,或者我还可以检查日食(RAD 7.5)? 附加信息: 被调用的方法不是静态的。 它是公共的,并且是通过非静态,受保护的方法调用的。 代码段 我要汇入的课程: package com.state; public TelcoVariableTracker() { super(); } public boolean isMedicalFlag() { return isMedicalFlag; } 带有构建错误的类: import com.state.TelcoVariableTracker; protected method() { TelcoVariableTracker phoneInfo = HttpSessionUtils.getTelcoVariableTracker(request); if (phoneInfo.isMedicalFlag() { // Build error: The method isMedicalFlag() is undefined
  • MIDP 2.0 版本问题:未定义 $type 的 $method(MIDP 2.0 version issues: $method is undefined for $type)
    问题 我写了一个 MIDlet,它可以做一些“高级”的事情:从 Web 获取图像,调整它们的大小,将它们保存在手机上,显示它们。 这一切都在诺基亚 S60 第三版 FP1 模拟器中完美运行。 该设备支持 MIDP 2.0 和 CLDC 1.1(还有 JSR75,我需要它来保存文件)。 它也可以在诺基亚 E71(物理设备)上正常工作。 然后我尝试在其他几个模拟器上运行 MIDlet。 其中之一,来自 Java ME SDK 3.0 的 DefaultCldcJtwiPhone2,也声称支持 MIDP 2.0 和 CLDC 1.1。 它没有 JSR75,这就解释了为什么“无法将 FileConnection 解析为类型”。 然而,这并不能解释为什么 List.deleteAll()、String.equalsIgnoreCase(String) 和其他一些未定义。 我得到的实际错误: 对于 Math 类型,方法 ceil(double) 未定义未定义类型 List 的方法 deleteAll() 对于 String 类型,方法 equalsIgnoreCase(String) 未定义对于 Displayable 类型,方法 getWidth() 未定义 当我查看 MIDP 2.0(即 JSR118)API(http://java.sun.com/javame/reference
  • 如何像未定义的函数一样传递未定义的方法(How Can I Pass an Undefined Method Like an Undefined Function)
    问题 鉴于我正在传递未定义的函数: void foo(char, short); 我学会了如何通过使用这个函数调用decltype(m(foo))来获取参数的类型tuple : template <typename Ret, typename... Args> tuple<Args...> m(Ret(Args...)); 我现在想传递一个未定义的方法: struct bar { void foo(char, short); }; 我曾尝试像这样重写m : template <typename Ret, typename C, typename... Args> tuple<Args...> m(Ret(C::*)(Args...)); 但是当我尝试用decltype(m(bar::foo))类似地调用它时,我收到错误: 无效使用非静态成员函数void bar::foo(char, short int) 我怎样才能像我为函数所做的那样传递这个方法? 回答1 如果你只想在它上面使用decltype ,你只需要一个额外的& : decltype(m(&bar::foo))
  • Jasper 字符串函数方法未定义错误(Jasper string functions method undefined error)
    问题 使用 Jasper 报告 5.6.1。 向以前工作的文本字段 jrxml 添加了一些文本函数(如果长度超过 75 个字符,则只想截断)。 适用于 iReport Studio,但不适用于 Java。 <textFieldExpression><![CDATA[IF(LEN($F{AccountName})<75,$F{AccountName},LEFT($F{AccountName},75)+"...")]]></textFieldExpression> 错误信息: Error occured while trying to fetch the HTML Output from the Jasper Service (Errors were encountered when compiling report expressions class file: 1. The method LEN(String) is undefined for the type ICC_1422636250096_198427 value = IF(LEN(((java.lang.String)field_AccountName.getValue()))<75,((java.lang.String)field_AccountName.getValue()),LEFT(((java.lang
  • 为什么在使用Promise时在类方法中未定义“ this”? [复制](Why is 'this' undefined inside class method when using promises? [duplicate])
    问题 这个问题已经在这里有了答案: setTimeout和JavaScript中的“ this” (5个答案) 5年前关闭。 我有一个javascript类,每个方法都返回一个Q Promise。 我想知道为什么this中未定义method2和method3 。 有没有更正确的方法来编写此代码? function MyClass(opts){ this.options = opts; return this.method1() .then(this.method2) .then(this.method3); } MyClass.prototype.method1 = function(){ // ...q stuff... console.log(this.options); // logs "opts" object return deferred.promise; }; MyClass.prototype.method2 = function(method1resolve){ // ...q stuff... console.log(this); // logs undefined return deferred.promise; }; MyClass.prototype.method3 = function(method2resolve){ // ...q stuff
  • 方法 openOrCreateDatabase(String, int, null) 未定义(The method openOrCreateDatabase(String, int, null) is undefined)
    问题 我正在尝试按如下方式打开数据库: SQLiteDatabase myDatabase; myDatabase = openOrCreateDatabase("sudoku.db", Context.MODE_PRIVATE, null); 当我在 Service 类中实现它时,此代码工作正常,但是当我尝试在 GeneraterThread 类的 onPostExecute 事件处理程序中实现它时,实现 AsyncTask,我收到以下错误: The method openOrCreateDatabase(String, int, null) is undefined for the type GeneraterThread 回答1 看起来您正在尝试在没有该方法的 GeneraterThread 实例上调用 openOrCreateDatabase 方法(而 Service 类具有该方法)。 您可能会传入对 Context 对象的引用并调用其上的方法。 或者使用 SQLiteDatabase.openOrCreateDatabase() 的静态方法。 回答2 看起来您刚刚为函数设置了错误的参数。 SDK中有这些定义: public static SQLiteDatabase openOrCreateDatabase (String path, SQLiteDatabase
  • Meteor.methods返回未定义(Meteor.methods returns undefined)
    问题 我正在使用流星0.6.4。 Meteor.methods({ random: function(top){ var random = Math.floor((Math.random()*(top+1))); return random; } }); 每当我执行时,它返回未定义 Meteor.call('random', 10); 有什么想法可以解决这个问题吗? 回答1 这是完全正常的行为:Meteor中的服务器方法调用被记录为异步的: 在客户端上,如果不传递回调并且不在存根内部,则调用将返回undefined,并且您将无法获取该方法的返回值。 这意味着当您请求Meteor.call方法在服务器上远程执行时,本地方法调用是非阻塞的,并立即返回undefined 。 在服务器上调用该方法后,它将异步将结果发送给客户端,因此您应该使用回调模式进行检索: Meteor.call("myMethod", arguments..., function(error, result){ if(error){ console.log(error.reason); return; } // do something with result }); 服务器方法结果发送回客户端后,将在客户端上调用匿名回调函数。 流星还有另一个微妙的功能,使我刚才所说的无效:延迟补偿和方法存根。
  • 方法 getInstance() 未定义类型 RandomGenerator 错误(The method getInstance() is undefined for the type RandomGenerator error)
    问题 我是 Java 新手,我正在学习在线课程中的一个示例。 本课专门用于 RandomGenerator。 我们编写了一个小程序,从 (1,6) 生成随机数。 我编写了与示例类似的代码,但出现错误。 你能指出我做错了什么吗? import acm.program.*; import acm.util.*; public class RandomGenerator extends ConsoleProgram { public void run() { int dieRoll = rgen.nextInt(1,6); //The method nextInt(int, int) is //undefined for the type RandomGenerator println("You rolled " + dieRoll); } private RandomGenerator rgen = RandomGenerator.getInstance();/*The method getInstance() is undefined for the type RandomGenerator*/ } 回答1 将您的类重命名为RandomGenerator以外的其他RandomGenerator以便您可以使用 acm.util.RandomGenerator 回答2
  • 方法 getChildFragmentManager() 未定义(The method getChildFragmentManager() is undefined)
    问题 我有一个 SherlockFragmentActivity,这个 Activity 有一个 SectionsPagerAdapter 和一个 ViewPager。 当我使用getChildFragmentManager()方法调用 SectionsPagerAdapter 的构造函数时,它向我显示了以下错误消息: 方法 getChildFragmentManager() 未定义为 ViewPagerActivity 类型 这是我的代码: public class ViewPagerActivity extends SherlockFragmentActivity implements OnPageChangeListener, OnQueryTextListener{ private SectionsPagerAdapter sectionsPagerAdapter; private ViewPager viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_view_pager); sectionsPagerAdapter = new
  • Google Plus Android API:“未定义 PlusClient.Builder 类型的 setActions(String[]) 方法”(Google Plus Android API: "The method setActions(String[]) is undefined for the type PlusClient.Builder")
    问题 我正在尝试使示例 Android Google+ 应用程序正常工作...(Google 在此处提供的示例应用程序:https://developers.google.com/+/quickstart/android ) 我在“setAction”方法上遇到编译错误: mPlusClient = new PlusClient.Builder(this, this, this) .setActions(MomentUtil.ACTIONS) // Compiling error here ! .build(); 我得到“未定义 PlusClient.Builder 类型的 setActions(String[]) 方法” 有谁知道我为什么会收到这个错误??? 谢谢 !! 回答1 1) 转到 SDK Manager 并转到 extras 并选择 google play services 并安装最新更新。 2) 然后浏览您的 sdk 文件夹,如 sdk/extras/google/.. 您将找到库项目。将该项目导入工作区并将其作为库添加到您的项目中。 3)然后清理构建并运行。 回答2 “未定义 PlusClient.Builder 类型的 setActions(String[]) 方法” 意味着您将 String 数组传递给 setActions 方法,但在 API Doc
  • 未捕获的类型错误:无法调用未定义的方法“noConflict”(Uncaught TypeError: Cannot call method 'noConflict' of undefined)
    问题 我正在尝试在 SalesForce 中使用 javascript 和 jquery 创建一个小部件,但我遇到了一个错误:未捕获的类型错误:无法调用未定义的方法“noConflict” 下面是我正在使用的代码 (function() { // Localize jQuery variable var $j; /******** Load jQuery if not present *********/ if (window.jQuery === undefined || window.jQuery.fn.jquery !== '1.4.2') { var script_tag = document.createElement('script'); script_tag.setAttribute("type","text/javascript"); script_tag.setAttribute("src", "https://ap1.salesforce.com/resource/go/jquery.min.js"); if (script_tag.readyState) { script_tag.onreadystatechange = function () { // For old versions of IE if (this.readyState ==
  • 对于类型MyActivity,未定义方法getFragmentManager()(The method getFragmentManager() is undefined for the type MyActivity)
    问题 由于我一直在使用代码,因此我使用了片段。 为此,我有一个活动,通过标签使用片段调用片段: FluxListFragment FLF = (FluxListFragment) getFragmentManager().findFragmentByTag(FRAG_LIST); 但是从今天开始,似乎无法识别getFragmentManager。 它说 : "The method getFragmentManager() is undefined for the type FluxMainActivity" 问题是否来自构建目标? (我放了Android 3.0) 这是代码: public Class FluxMainActivity extends Activity { @override public void onCreate(Bundle saveInstanceState) { super.onCreate(); setContentView(R.layout.main); FluxListeFragment FLF = (FluxListeFragment)getFragmentManager().findFragmentByTag(FRAG_LISTE); } } 该方法应该链接到FluxListeFragment而不是FluxMainActivity!
  • 未定义类型 Notification.Builder 的方法 build()(The method build() is undefined for the type Notification.Builder)
    问题 错误:未定义类型 Notification.Builder 的方法 build() 我已经添加了 android-support-v4.jar 仍然出现错误? Notification notification = new Notification.Builder(context) .setContentText(message) .setContentTitle(context.getString(R.string.app_name)) .setSmallIcon(icon) .setWhen(when) .setContentIntent(intent).build(); 回答1 我的猜测是你的android-support-v4.jar太旧了。 build()大约在一年前添加,但在 Android 支持包首次发布之后很久。 确保您在 SDK 管理器中下载了最新的 Android 支持包,然后将最新的android-support-v4.jar从您的 SDK 的extras/目录复制到您的项目中。 回答2 试试这个 : NotificationCompat.Builder builder = new NotificationCompat.Builder( context); Notification notification = builder
  • 未定义的方法(NoMethodError)红宝石(undefined method (NoMethodError) ruby)
    问题 我不断收到以下错误消息: text.rb:2:in `<main>': undefined method `choices' for main:Object (NoMethodError) 但是我似乎无法理解为什么我的方法是“未定义的”: puts "Select [1] [2] [3] or [q] to quit"; users_choice = gets.chomp choices(users_choice) def choices (choice) while choice != 'q' case choice when '1' puts "you chose one!" when '2' puts "you chose two!" when '3' puts "you chose three!" end end end 回答1 这是因为您要在定义方法之前调用方法choices 。 编写如下代码: puts "Select [1] [2] [3] or [q] to quit" users_choice = gets.chomp def choices (choice) while choice != 'q' case choice when '1' break puts "you chose one!" when '2' break puts "you chose
  • 为什么未为类型对象定义我的方法?(Why is my method undefined for the type object?)
    问题 我不确定为什么Eclipse会给我这个错误: 未定义类型Object的方法listen() 我犯了什么简单的错误? 另外,我的代码是编写实例化EchoServer0对象并调用其listen方法的main方法的正确方法吗? public class EchoServer0 { public void listen() { ServerSocket socket = null; try{ socket = new ServerSocket(2013); System.out.println("Opened server socket"); socket.setSoTimeout(2000); socket.accept(); socket.close(); } catch (SocketTimeoutException ste){ System.out.println("Timed out after " + 2000 + " ms"); } catch (Exception e){ System.out.println(e.getClass().getName()+" at server: " + e.getMessage()); } } public static void main(String[] args) { Object EchoServer0