小编jbu*_*jbu的帖子

Java:为什么我不能将它转换为Object?

这很奇怪...我认为java中的每个对象都将Object作为祖先.

我有一个ClassA扩展我的ClassB和实现Runnable.

创建后ClassA我无法将其转换为Object.

假设getClassA返回一个ClassA实例.

我在做

Object obj = getClassA();
Run Code Online (Sandbox Code Playgroud)

我也试过了

Object obj = (Object) getClassA();
Run Code Online (Sandbox Code Playgroud)

我得到一个不兼容的类型编译错误:找到Class,required Object.

这有什么用?我认为所有对象都可以转换为Object.

编辑:我认为它与ClassA实现Runnable这一事实有关,但我不确定并需要解释.

Edit2:更改getClassA()以返回一个Object,允许程序进行编译.

Edit3:导入包含ClassB的包修复了问题.B类是在另一个罐子里定义的.ClassA在另一个引用包含ClassB的jar的jar中定义.

java casting object

2
推荐指数
1
解决办法
1万
查看次数

C++提升共享数组交换指针(简单问题)

我是新手来增强共享阵列.

现有代码声明了两个数组:

boost::shared_array<unsigned char> src; 
boost::shared_array<unsigned char> dest; 
Run Code Online (Sandbox Code Playgroud)

我想做的就是交换每个数组指向的内容(src变为dest,dest变为src).据我所知,shared_array.get()方法返回一个指向其中一个元素的指针(可以是任何类型).

所以我添加的声明是:

boost::shared_array<unsigned char> temp;
Run Code Online (Sandbox Code Playgroud)

我添加的代码是:

temp.get() = src.get();
src.get() = dest.get();
dest.get() = temp.get();
Run Code Online (Sandbox Code Playgroud)

每条线都失败了; 编译错误是C2016:'=':左操作数必须是l值.

我是一个C++新手,所以我搜索了错误,看到该错误消息意味着左手操作数不可分配.然而,左侧是指针,指针可以分配给其他指针.

所以我不确定我做错了什么.有人可以帮帮我吗?

提前致谢.

JBU

c++ arrays boost pointers shared

1
推荐指数
1
解决办法
1700
查看次数

是否可以通过USB直接通信?

是否可以在同一台计算机上使用两个应用程序直接通过USB进行通信(没有电缆,没有相关设备)?容易/困难吗?你会推荐什么API?

是的,我发布了一个类似的线程,但它是专门针对我发现的JAVA/USB实现,但我需要Windows支持.所以现在我正在寻找任何USB API - 它不必在java中工作.我总是可以使用JNI/JNative来使用本机代码/库.

我没有在互联网上找到很多做同样事情的人.

windows api usb

0
推荐指数
1
解决办法
2591
查看次数

TIME_WAIT中的tcp连接将不允许重新连接,java

在与服务器建立TCP连接后,我关闭了我的linux应用程序并调用了Socket.close().

检查netstat -pant,我看到连接处于TIME_WAIT状态.

这使我无法立即连接回服务器,因为我使用相同的端口进行连接.相反,我必须等待连接到TIME_WAIT状态的超时,然后才能重新连接.

我用套接字方法玩了一下 - 运气不好:set_so_timeout(),set_keepalive(),set_so_linger()和set_reuseaddr() - 这篇文章的确切拼写可能不正确.

我的问题是我如何从TIME_WAIT状态获得连接,以便我可以立即重新建立连接?

请告诉我.

谢谢,jbu

java connection tcp time-wait wait

0
推荐指数
1
解决办法
3354
查看次数

C++:"新"这个将继续增长的系列意味着什么?

我是C++的新手.对于"新"系列来说,它究竟意味着什么?例如:

UnicodeStringList* tmp = new UnicodeStringList;
// where UnicodeStringList is typedef to std::list<UnicodeString>
Run Code Online (Sandbox Code Playgroud)

当你"新"某事时,你必须知道你需要它有多大,对吧?因此,当我使用赋值构造函数来复制对象时,计算机将如何知道应该在堆上分配多少内存?例如:

*tmp = another_string_list;
Run Code Online (Sandbox Code Playgroud)

另一个sun_string_list被复制到堆内存中新的UnicodeStringList中,但我最初从未指定堆内存应该有多大.并且编译器不知道another_string_list有多大,所以有多少内存进入堆?

我很困惑,希望我已经说明了我的问题,所以有人可能会理解我,但我不确定.

请帮忙

谢谢,

朱利安

c++ heap allocation new-operator

0
推荐指数
1
解决办法
319
查看次数

C++ std :: vector擦除元素0抛出异常

对不起我无法提供代码bc我没有.

我的同事(已经在公司工作了很长时间但似乎不知道他在做什么)声称他必须做一些奇怪的事情来从矢量中删除元素.他将所有元素向下移动(从他想要移除的元素开始)然后他将移除向量中的最后一个元素.听起来不错,但效率很低.标准库的std :: vector :: erase()应该能够处理这个问题.

他这样做是因为他声称在元素0上调用erase会产生随机异常.

我的问题是什么可能导致这个?我很确定这是一个线程安全问题,但还有什么可能导致它吗?

请让我知道......我是C++的新手.

再次,抱歉无法提供代码.

谢谢,Jbu

c++ element exception vector erase

-4
推荐指数
1
解决办法
1281
查看次数