小编Kat*_*a L的帖子

在片段中注册和取消注册BroadcastReceiver

我的应用有一个带有3个片段标签的操作栏.在第二个片段中,我注册并取消注册BroadcastReceiver.我注销在接收onPause和登记它onCreateViewonResume.

getActivity().registerReceiver(this.batteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
Run Code Online (Sandbox Code Playgroud)

getActivity().unregisterReceiver(batteryInfoReceiver);
Run Code Online (Sandbox Code Playgroud)

1)两次注册相同的接收器是否可以(在onCreateView和onResume上)?(它是无害的吗?)

2)在onResume中注册接收器是否足够?

android broadcastreceiver android-fragments

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

Exchange.getIn().getBody()在第二次调用时返回camel中的空字符串

我有2个相同的电话:

String msg1 = exchange.getIn().getBody(String.class);
String msg2 = exchange.getIn().getBody(String.class);
Run Code Online (Sandbox Code Playgroud)

在msg1中,我得到了正确的期望值,但msg2是一个空字符串.我没有设置Out消息,所以交换In消息应该仍然完好无损.请解释为什么会这样.

骆驼路线:

<camelContext xmlns="http://camel.apache.org/schema/spring">
    <route id="route1">
        <from uri="timer://myTimer?period=2000" />
        <setBody>
            <simple>Hello World ${header.firedTime}</simple>
        </setBody>
        <process ref="messageProcessor" />
        <to uri="http://localhost:8090"/>
    </route>
    <route id="route2">
        <from uri="jetty://http://localhost:8090" />
        <process ref="messageProcessor" />
    </route>
</camelContext>
Run Code Online (Sandbox Code Playgroud)

处理器仅包含上面的2个语句.route1中的处理是正确的,但是在route2中我得到了描述的行为:第一次调用 - 有效字符串,第二次调用 - 空字符串.所以我想也许它与HttpMessage转换有关.

java apache-camel

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

@Query 注释使用像 %?1%

我想写一个这样的查询

@Query("select p from Product p where p.name = ?1 or p.desc like %?1%")
Run Code Online (Sandbox Code Playgroud)

但它给了我例外

org.hibernate.hql.ast.QuerySyntaxException: unexpected token: % near line 1,
Run Code Online (Sandbox Code Playgroud)

我尝试用 '%' 替换 % 或像这样连接查询字符串:“select ... like '%'” + "?1" + "'%'" 但没有运气,请帮助我

hibernate jpa hql spring-data

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

在无限循环中使用匿名vs嵌套类(Java)

在无限循环的上下文中有什么更好的:匿名类或嵌套类?正如我所看到的,如果我们使用匿名类,它会为每次迭代重新定义,但是使用嵌套类我们仍然会创建一个实例,但是类本身并没有重新定义.不确定这是否正确......在这种情况下,使用一个与另一个有什么优势吗?

public class MainThread {
    public static void main(String[] args){    
        while (true) {
        final int data = rand.nextInt();
        //Runnable task = new MyRunnable(data);
        Runnable task = new Runnable() {
            public void run() {
                printData(data);
            }
        };
        new Thread(task).start();
        }
    }

    private static class MyRunnable implements Runnable {
        private int data;

        MyRunnable(int data){
            this.data = data;
        }

        @Override
        public void run() {
            printData(data);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java anonymous-class

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

在未提交的情况下从git中拉出

我有一些尚未推送的提交。但是存储库中有几个新的提交。我想提取新的提交并推送我的提交,但是我不确定执行此操作的正确方法是什么。如果我按原样进行拉动,但我认为它会尝试合并,并且我不确定提交的内容,请提出针对这种情况的解决方案。

git git-pull git-push

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

在c ++中逐行读取文件(每行有一个字符串和几个int值)?

(每行中的整数数相同,但未知)

所以我可能有这样的文件:

title1 34 98 
title2 15 9 
title3 45 15

要么

title1 34 98 76 97
title2 15 9 43 8
title3 45 15 34 7

要么 ...

struct elem
{
  char d[50];
  int v[50];
};
Run Code Online (Sandbox Code Playgroud)

我试过这个并且它编译但不起作用

char ch;
elem col[10];
int num,z=0;

//z-nr of lines, num -nr of int values in the line

ifstream myfile("t2.txt");
if (myfile.is_open())
{
    while (myfile.good())
{
      myfile>>col[z].d;
  num=0;
  myfile.get(ch);
  while(ch!='\n')
  {
        myfile>>col[z].v[num];
    myfile.get(ch);
    num++;
      }
  z++;
}
  myfile.close();
}
Run Code Online (Sandbox Code Playgroud)

程序'挂起'(没有响应的状态)

c++ ifstream

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

扩大从数组到对象的转换(java)

为什么在 Java 中可以进行这种类型的转换(数组到对象),x 指的是什么?(我仍然可以通过 x 访问数组元素“s1”、“s2”、“s3”)。数组到对象的转换在哪里使用?

String[] array = {"s1","s2","s3"};  
 Object x = array;  
Run Code Online (Sandbox Code Playgroud)

java

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

Bash脚本进程替换语法错误:"("意外

我想运行这个脚本:

#!/bin/bash
echo <(true)
Run Code Online (Sandbox Code Playgroud)

我把它当作:

sh file.sh
Run Code Online (Sandbox Code Playgroud)

我得到了" Syntax error: "(" unexpected".我发现了一些类似的情况,但仍然无法解决这个问题.我是shell脚本的初学者,但据我了解:

  1. 我使用的shebang是正确的并选择了bash shell,因此进程替换语法应该有效
  2. 我从命令行尝试相同,它的工作原理.我查了echo $0一下它给了我" bash",那么在命令行和调用同一个shell的脚本中运行命令有什么不同?

也许这很简单,但我找不到解释或解决方案.

linux bash shell process-substitution

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