可能重复:
为什么Java需要Serializable接口?
根据Java docs中的Serializability:
实现java.io.Serializable接口的类启用了类的可序列化.未实现此接口的类将不会将其任何状态序列化或反序列化.可序列化类的所有子类型本身都是可序列化的.序列化接口没有方法或字段,仅用于标识可序列化的语义
为什么Object没有实现Serializable?我们不希望可序列化的成员可以被制作为transient.为什么要阻止默认的Serializability?
Java foreach有可能有条件吗?
例如,
for(Foo foo : foos && try == true)
{
//Do something
}
Run Code Online (Sandbox Code Playgroud)
有没有相当于这个,这样我可以把一个AND条件放在里面for?
这是一段简单的代码:
import java.io.*;
public class Read {
public static void main(String[] args) {
BufferedReader f = new BufferedReader(new InputStreamReader(System.in));
while(true)
{
String x = null;
try{
x = f.readLine();
}
catch (IOException e) {e.printStackTrace();}
System.out.println(x);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我执行此操作:java读取<input.txt
一旦input.txt被完全传送到程序中,x就会不断获得无限空值.为什么会这样?在将文件送入代码后,我是否可以使标准输入(命令行)处于活动状态?我试过关闭流并重新打开,它不起作用.重置等也.
我正在寻找一种相对简单(与编写解析器相比)的方法来评估Java中的布尔表达式,我不想使用JEP库.
我有一个像String这样的String表达式(x > 4 || x < 8 && p > 6),我的目标是用值替换变量.
有没有办法评估这个表达式?
请记住,这可能是任何级别的深度,因此编写解析器将非常复杂.
我正在使用SQL查询,然后使用Hibernates转换结果Transformers.aliasToBean().我的查询中的一列是枚举.这种转变在某种程度上失败了.我该怎么办?我应该使用哪种数据类型?我想要超过1个字符将结果转换为我的枚举类型.
这就是我的查询/代码的简化版本的样子(b是表格配置文件中的枚举):
session.createSQLQuery("select a, b from profiles").setResultTransformer(Transformers.aliasToBean(Profile.class))
.list();
Run Code Online (Sandbox Code Playgroud)
例外: expected type: Foo.ProfileStateEnum, actual value: java.lang.Character
我可以从mysql查询ID中找到确切的查询吗?
这是MySQL中"SHOW ENGINE INNODB STATUS"的一部分:
MySQL thread id 1106, query id 1360 localhost 127.0.0.1 test2
---TRANSACTION 0 19491, not started, OS thread id 2960035840
Run Code Online (Sandbox Code Playgroud)
有没有办法可以找到id为1360的查询?
在我的一个应用程序中,我必须确定表foo_id中的' foo'列中是否存在' foo_table'.
一旦我知道有一个这样foo_id的礼物,我的要求就会得到满足.
现在,我的问题是如何将此限制为第一场比赛.
当我检查这些查询时mySql EXPLAIN:
- select count(foo) from foo_table where foo=<foo_id>;
- select foo from foo_table where foo=<foo_id> limit 1;
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,行数是58.在mySql中是否有一种方法可以将行数限制为1(第一个匹配),这样就不会不必要地触摸行(因为我不需要那).
我必须在返回的服务上调用GET text/xml.
端点是这样的:
http://service.com/rest.asp?param1=34¶m2=88¶m3=foo
Run Code Online (Sandbox Code Playgroud)
当我直接在浏览器(或一些UI工具)上点击这个URL时,一切都很好.我收到回复.
现在,我试图使用CXF WebClient一段代码来获取结果,如下所示:
String path = "rest.asp?param1=34¶m2=88¶m3=foo";
webClient.path(path)
.type(MediaType.APPLICATION_JSON)
.accept(MediaType.TEXT_XML_TYPE)
.get(Response.class);
Run Code Online (Sandbox Code Playgroud)
我正在调试代码,发现发送的请求是url编码的,看起来像这样:
http://service.com/rest.asp%3Fparam1=34%26param2=88%26param3=foo
Run Code Online (Sandbox Code Playgroud)
现在,问题是服务器似乎不理解带有编码内容的这个请求.它会抛出404.在浏览器上点击此编码的URL也会产生404.
我该怎么做才能成功获得响应(或者不让WebClient对url进行编码)?
我有一个消费者对多个主题进行民意调查。对于这个问题,我限制了每个主题一个分区。假设当消费者开始轮询时,每个主题都有一些数据。读取的顺序是什么?
是循环赛吗?是从第一个开始读取下一个之前的所有内容吗?我用来consumer.poll(N)投票。
在我的应用程序中,有多个步骤,通过多种方法顺序进行数据库的许多提交.例:
A -> B -> C
-> D
->E
-> F
-> G
Run Code Online (Sandbox Code Playgroud)
A呼叫B,呼叫C.然后B呼叫D.D呼叫E,依此类推.所有这些方法都有一些数据库操作.据我所知PROPAGATION_REQUIRED(声明式事务管理 - 弹簧推荐方式),如果E成功完成,则事务(以及E中的操作将被提交).现在,由于一些例外,F应该导致回滚.我希望 从A所做的一切开始回滚.这可以通过声明式事务管理吗?或者我应该使用程序化事务管理?
谢谢.
java ×6
hibernate ×2
mysql ×2
apache-kafka ×1
boolean ×1
command-line ×1
cxf ×1
database ×1
deadlock ×1
enums ×1
evaluate ×1
expression ×1
file ×1
foreach ×1
hql ×1
input ×1
limit ×1
pipe ×1
rest ×1
serializable ×1
spring ×1
sql ×1
transactions ×1
web-client ×1
web-services ×1
workbench ×1