小编TJ-*_*TJ-的帖子

为什么Java.lang.Object没有实现Serializable接口?

可能重复:
为什么Java需要Serializable接口?

根据Java docs中的Serializability:

实现java.io.Serializable接口的类启用了类的可序列化.未实现此接口的类将不会将其任何状态序列化或反序列化.可序列化类的所有子类型本身都是可序列化的.序列化接口没有方法或字段,仅用于标识可序列化的语义

为什么Object没有实现Serializable?我们不希望可序列化的成员可以被制作为transient.为什么要阻止默认的Serializability?

java serializable

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

带有条件的Java Foreach

Java foreach有可能有条件吗?

例如,

for(Foo foo : foos && try == true)
{
//Do something
}
Run Code Online (Sandbox Code Playgroud)

有没有相当于这个,这样我可以把一个AND条件放在里面for

java foreach

24
推荐指数
3
解决办法
3万
查看次数

Java中的命令行管道输入

这是一段简单的代码:

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 command-line file input pipe

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

Java中的布尔表达式评估

我正在寻找一种相对简单(与编写解析器相比)的方法来评估Java中的布尔表达式,我不想使用JEP库.

我有一个像String这样的String表达式(x > 4 || x < 8 && p > 6),我的目标是用值替换变量.

有没有办法评估这个表达式?

请记住,这可能是任何级别的深度,因此编写解析器将非常复杂.

java expression boolean evaluate

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

Enum字段类型的Hibernate SQL转换失败

我正在使用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

sql enums hibernate hql transformation

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

在mysql中从query_id中查找查询

我可以从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的查询?

mysql deadlock workbench

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

只返回mysql Query的第一个结果

在我的一个应用程序中,我必须确定表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(第一个匹配),这样就不会不必要地触摸行(因为我不需要那).

mysql database limit

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

调用在URL中具有查询参数的"REST"服务

我必须在返回的服务上调用GET text/xml.

端点是这样的:

http://service.com/rest.asp?param1=34&param2=88&param3=foo
Run Code Online (Sandbox Code Playgroud)

当我直接在浏览器(或一些UI工具)上点击这个URL时,一切都很好.我收到回复.

现在,我试图使用CXF WebClient一段代码来获取结果,如下所示:

String path = "rest.asp?param1=34&param2=88&param3=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进行编码)?

java rest web-services cxf web-client

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

Kafka Consumer订阅多个主题时接收消息的顺序

我有一个消费者对多个主题进行民意调查。对于这个问题,我限制了每个主题一个分区。假设当消费者开始轮询时,每个主题都有一些数据。读取的顺序是什么?

是循环赛吗?是从第一个开始读取下一个之前的所有内容吗?我用来consumer.poll(N)投票。

apache-kafka kafka-consumer-api

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

使用Spring和Hibernate的嵌套事务

在我的应用程序中,有多个步骤,通过多种方法顺序进行数据库的许多提交.例:

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 spring hibernate transactions

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