【发布时间】:2016-03-27 10:11:05
【问题描述】:
我有一个方法,它需要:“java.io.Reader”作为参数 java.io.Reader 是一个接口,不能被实例化。
所以,我使用这样的一个子类: StringReader= jp.java.io.StringReader("teststring")
如何将 StringReader 转换为 java.io.Reader 类型?
因为方法不能隐含。
编辑:使用该方法时收到此错误消息:
txt= u'gfdgfdgddf'
StringReader = jp.JClass('java.io.StringReader')(txt)
StringReader.ready() #Ok works
userDicC= jp.JClass('org.apache.lucene.analysis.ja.dict.UserDictionary')
useDic= userDicC(StringReader)
方法详情: public static UserDictionary open(Reader reader) 抛出 IOException
我收到了这个错误:
userDicC=java.jp.JClass('org.apache.lucene.analysis.ja.dict.UserDictionary') useDic= userDicC(StringReader)
line 84, in _javaInit
self.__javaobject__ = self.__class__.__javaclass__.newClassInstance(*args)
RuntimeError: No matching overloads found. at src\native\common\jp_method.cpp:121
【问题讨论】:
-
您认为为什么需要投射对象?如果您将
StringReader传递给您说需要java.io.Reader的方法会发生什么? -
因为我收到了错误信息:
-
那条错误信息是什么?请编辑您的问题以包含此消息。
-
你调用的是什么方法?它采用什么参数类型以及为任何其他参数传递什么值?我问这个的原因是我尝试从
StringReader创建一个BufferedReader并且有效。 -
我把apache方法放到代码里了