Tag: c

为什么A-> B不会使List – > List ? 这不会消除对通配符的需求吗?

免责声明:我不是专业开发人员,我不打算成为一名开发人员。 关于Java的阅读书,因为我想尝试Android编程,没有任何以前的Java经验。 我正在读这本书 – 我更喜欢它。 我已经阅读了关于generics类的章节的一部分,到了他们提到通配符的地步,并且感到困惑。 如果B延伸A: List 不是 List的子类型(据我所知,它们完全相同) List List是List的子类型List List 后者允许编写接受generics类型参数的函数 – 例如List List 。 这样的函数会接受List或List 。 现在,对于我的问题: 以类似于C ++(以“模板”风格)的方式实现generics不是更简单吗? 这将使List和List两种不同的类型,这些类型将以预期的方式相关。 这也可以简单地在函数中声明你期望参数是List类型,这将允许List适合那里。 我猜测不仅仅是“我们讨厌C ++,让我们做出与众不同”这一点:)我很可能还不知道什么,这使得通配符成为一个非常有用的工具。 你对此有何看法? 编辑:如果您在答案中提到List ,请记住使用反引号,以避免被解释为HTML标记。

调用C子例程时出现JNI错误

我想从Java调用一个C子例程。 我正在使用JNI。 我创建了.java,.c和.h文件,并编译了一个DLL。 所有文件都在同一个文件夹中。 但是当我运行程序时,它显示了一个unsatisfiedlinkError 。 我哪里错了……? 在我学习JNI时,我使用的源代码来自: http : //www.ibm.com/developerworks/java/tutorials/j-jni/section2.html以及我已经尝试过的内容: 使用Code :: Blocks(ide)和GCC作为编译器创建一个dll 从命令行使用GCC创建dll(参考http://sig9.com/node/35 ) 我使用Win7 32位,我猜上面的所有方法都生成32位DLL 我找到的用于创建DLL(共享库)的所有解决方案都是针对MS VC / VCPP的,我现在在我的机器上没有。 哪里有问题? 生成DLL文件没有任何exception,但是当我运行Java代码时,它会抛出exception。 PS:如果有任何理论上的例子可以解释JNI的工作原理以及它的实际作用,那么请分享链接…… 抛出的消息或exception: c:\myjava1>java Sample1 Exception in thread “main” java.lang.UnsatisfiedLinkError: Sample1.intMethod(I)I at Sample1.intMethod(Native Method) at Sample1.main(Sample1.java:11) 在创建dll文件很多次后的一天结束时,我很确定它可能没有问题,路径有问题…我已经用load方法更改了loadlibrary方法,但仍然没有运气,….. 正如MOD建议的那样:我一直在讨论这个问题:调用C子程序时JNI错误,我在这里发布所有代码,因为注释有限的字符… Sample1.c #include “jni.h” #include”Sample_Sample1.h” JNIEXPORT jint JNICALL Java_Sample_Sample1_test(JNIEnv *env, jobject obj){ return(1); } void […]

配置CMake C ++ / Java项目以使用Eclipse

我目前正在尝试建立一个VTK项目,该项目预先编写了Cmake makefile以与Eclipse协同工作。 我需要使用的代码是C ++和Java,但我现在主要关心的是能够将现有项目转换为Eclipse可以理解的所有依赖项等。 请随时提出进一步的问题。 干杯。

是否有允许识别多个键盘的Java / C库?

我需要用一台计算机连接多个键盘/鼠标。 Manymouse图书馆可以识别不同的鼠标,但是有没有可以识别不同键盘的图书馆? 我的意思是,当我按下键“E”时,程序可以告诉我KeyPress事件来自哪个键盘。 使用C#,SDGToolkit可以做到,Java世界或C世界中有什么东西,它像Manymouse一样支持所有操作系统吗? 我对Mac和Linux解决方案更感兴趣。

在C#中相当于Java的“ByteBuffer.putType()”

我试图通过从Java移植代码来格式化C#中的字节数组。 在Java中,使用方法“buf.putInt(value);”,buf.putShort,buf.putDouble,(等等)。 但是我不知道如何将它移植到C#。 我已经尝试过MemoryStream类,但是没有方法可以在字节数组的末尾放置特定的类型。 问题:C#中Java的“ByteBuffer.putType(value)”的等价物是什么? 谢谢!

红色镶边交通标志的颜色阈值

我想检测所有红色镶边交通标志(三角形和圆形)。 该算法必须高效且稳健,才能在现实世界中工作,因此我决定使用HSV空间,因为它是光不变的。 我遇到了检测红色对象的问题 ,答案是使用HSV的这个值范围:代码是用C ++编写的: inRange(hsv, Scalar(0, 70, 50), Scalar(10, 255, 255), mask1); inRange(hsv, Scalar(170, 70, 50), Scalar(180, 255, 255), mask2); Mat1b mask = mask1 | mask2; 由于我使用Java的OpenCV,我尝试过,但我发现不可能进行按位OR操作。 所以我尝试手动实现它而不是使用OpenCV。 我也尝试了相同的红色值范围,遗憾的是结果很可怕: 这是我的代码 Mat hsv = new Mat(); Mat rgb = Highgui.imread(scene, Highgui.CV_LOAD_IMAGE_COLOR); Imgproc.cvtColor(rgb, hsv, Imgproc.COLOR_RGB2HSV); Mat thresh = new Mat(hsv.size(), CvType.CV_8UC1); for(int x=0;x<hsv.rows();x++){ for(int y=0;y=H && […]

从C ++调用非静态java方法时的JNI访问冲突

我试图从c ++调用非静态java方法。 Sample2.java: public class Sample2 { public int intMethod(int n) { return n*n; } } JNITest.cpp: #include “stdafx.h” #include #include #include #include #include using namespace std; #ifdef _WIN32 #define PATH_SEPARATOR ‘;’ #else #define PATH_SEPARATOR ‘:’ #endif int _tmain(int argc, _TCHAR* argv[]) { JavaVMOption options[3]; static JNIEnv *env; JavaVM *jvm; JavaVMInitArgs vm_args; long status; jclass […]

ReferenceTable溢出(最大= 1024)

在我的android应用程序中,我经常调用一个返回一些数据的本机函数。 经过多次通话后,我收到了一个显示以下跟踪的崩溃。 W/dalvikvm(14588): ReferenceTable overflow (max=1024) W/dalvikvm(14588): Last 10 entries in JNI pinned array reference table: W/dalvikvm(14588): 1014: 0x41f3b7a8 cls=[B (38036 bytes) W/dalvikvm(14588): 1015: 0x411c6f88 cls=[B (1620 bytes) W/dalvikvm(14588): 1016: 0x405b2f48 cls=[B (1052 bytes) W/dalvikvm(14588): 1017: 0x411c4be0 cls=[B (92 bytes) W/dalvikvm(14588): 1018: 0x41f44c40 cls=[B (38036 bytes) W/dalvikvm(14588): 1019: 0x411c5a78 cls=[B (60 bytes) W/dalvikvm(14588): 1020: 0x413ac4e8 […]

n个数字排成一个圆圈。 我们需要找到连续nos的最大总和

对于线性arrays,找到连续nos的最大总和的问题。 简单。 可以通过使用Kadane的Algo轻松完成。 。 但是现在arrays是圆形的,我们需要找到连续nos的最大总和。 因此startindex和endindex可以在数组中的任何位置。 我没有得到如何在O(n)时间内解决它。 例如: { 8, 9, -14, 4, 3} 。 最大子arrayssum= 4+3+8+9= 24. startindex=3 and endindex=1 (零索引数组)。 请给我一些关于如何处理这个问题的提示或算法。 无需代码。 编辑:正如大家所提到的,圆形数组类似于跨越两次的相同数组。 但是如何在该arrays上应用Kadane的Algo并限制连续的nos。 到<= n

替代MICO Corba?

我们目前正在使用MICO建立服务器和客户端之间的通信,其中客户端是用C ++编写的模拟器,服务器是一个java程序,显示模拟中发生的动画。 似乎MICO的发展已经放缓到几乎停止,并且只允许我们破解它们的错误(因为我们没有时间首先弄清楚MICO的哪些部分负责代码生成等等)我们从取得真正的进步。 那么,你们中的任何一个人都知道有一个好的替代品吗? 我们希望有以下内容: 编译器可以从idl生成C ++和Java-Code。 该项目仍应表现出相当大的支持。 实施应该是开源的(GPL或BSD,或类似的东西),因为我们也使用我们的程序来教学生。 从MICO迁移应该尽可能简单。 (这不是一个很难的要求,但会是一件好事) 我发现了一些其他CORBA实现,例如TAO,但我没有发现任何我可以说它们仍然受支持。 如果我在这里错了,请纠正我。