小编bra*_*orm的帖子

是否有 Java 8 语法让 collections.addAll() 可以使用 null 参数?

List<Integer> list = Lists.newArrayList(1, 2, 3);
List<Integer> list2 = null;
// throws NullPointerException
list.addAll(list2);

// using a check here    
if (list2 != null) {
    list.addAll(list2);   
}
Run Code Online (Sandbox Code Playgroud)

有没有一种Java 8方法可以在一行中简单地完成它?

这是我拥有的,但实际上我不需要创建boolean

boolean added = list2 != null ? list1.addAll(list2) : false;
Run Code Online (Sandbox Code Playgroud)

java collections java-8

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

如何在Java配置中使用delegatingFilterproxy?

DelegatingFilterProxy有两个我可以在我的应用程序中使用的构造函数

new DelegatingFilterProxy(String beanName);
new DelegatingFilterProxy(Filter delegate);
Run Code Online (Sandbox Code Playgroud)

在我webappIntializer,我有以下.(请参阅下面的完整代码).

servletContext.addFilter("counterMetricsFilter", new DelegatingFilterProxy("counterMetricsFilter").addMappingForUrlPatterns(null,
                false, MAPPING_URL);
Run Code Online (Sandbox Code Playgroud)

我不确定DelegatingFilterProxy我的情况是否正常运作.

Controller

@Controller
@RequestMapping("/counter")
public class CounterController {

@Autowired
CounterManager manager;

 @RequestMapping(value = "/counterMetrics", method = RequestMethod.GET)
    @ResponseBody
    public Map getFeatureStatus(final HttpServletResponse response) {
        System.out.println("returning feautre status");
        return manager.getQueryCounts();
    }
}
Run Code Online (Sandbox Code Playgroud)

Manager

@Service
public class CounterManager {

private Map<String,Integer> queryCounts =
            new ConcurrentHashMap<String,Integer>(1000);

int threshold;
long timestamp;

 @Autowired
  public CounterManager(@Value("${healthThreshold: 10}")
                                 int threshold) {
      this.threshold = threshold * MEGABYTES;
      this.timestamp = System.currentTimeMillis();
  } …
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc servlet-filters

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

无法在java类中导入org.sun.management.OperatingSystemMXBean?

org.sun.management在JRE系统库中看到了,但我无法在我的日食中导入.允许它的任何原因.甚至maven编译失败

这是截图.

在此输入图像描述

在此输入图像描述

我在用 Java 8.

我想这样做:

if (operatingSystemBean  instanceof com.sun.mananagement.OperatingSystemMXBean) {


        })
Run Code Online (Sandbox Code Playgroud)

java sun java-8

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

将SpringBootTest批注与WebEnvironment一起使用时出现NullPointerException

我在用spring-boot 1.4.0.RELEASE.这是我的测试课

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment= WebEnvironment.RANDOM_PORT)
@WebAppConfiguration
public class ApplicationTests { 

    @Test
    public void contextLoads() {
    }

}
Run Code Online (Sandbox Code Playgroud)

当我运行这个测试时(虽然它现在什么都不做),测试因启动而失败NullpointerException(下面的堆栈跟踪)

但是,如果我删除webEnvironment= WebEnvironment.RANDOM_PORT,一切看起来都不错.

堆栈跟踪:

java.lang.IllegalStateException: Failed to load ApplicationContext

    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
    at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
    at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:189)
    at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:131)
    at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:230)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:228)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:287)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:289)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:247)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
    at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:191)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:119)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:42)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) …
Run Code Online (Sandbox Code Playgroud)

spring-test spring-test-mvc spring-boot

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

使用python中的x和y值将直方图绘制为matplot中的线图

我有两个X轴和Y轴输入值.我想将直方图绘制为折线图.附图中提供了一个例子.我无法使用这些值绘制直方图.

ys = [0.21428571428571427, 0.14285714285714285, 0.047619047619047616, 0.11904761904761904, 0.09523809523809523, 0.09523809523809523, 0.023809523809523808, 0.09523809523809523, 0.11904761904761904, 0.047619047619047616]

xs = [0,1,2,3,4,5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

我试过了

plt.hist(xs,ys)
plt.show()
Run Code Online (Sandbox Code Playgroud)

但它失败了.

我对如下图形感兴趣,最好在直方图上有和没有直线.

在此输入图像描述.

X轴和Y轴分配有xs和ys的值.

python linegraph matplotlib histogram

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

为什么Joshua Bloch在有效的java中减少pop方法中堆栈的"大小"值?

这是Joshua Bloch撰写的有效Java第2版第2章第24页的代码.在他定义的pop方法中,他使用了elements[--size].我想知道他为什么使用--size,而elements[size--]应该返回相同的正确?

public class Stack {
       private Object[] elements;
       private int size = 0;
       private static final int DEFAULT_INITIAL_CAPACITY = 16;
       public Stack() {
           elements = new Object[DEFAULT_INITIAL_CAPACITY];
}
       public void push(Object e) {
           ensureCapacity();
           elements[size++] = e;
}
       public Object pop() {
           if (size == 0)
               throw new EmptyStackException();
           return elements[--size];
}
       /**
        * Ensure space for at least one more element, roughly
        * doubling the capacity each time the array needs to …
Run Code Online (Sandbox Code Playgroud)

java stack effective-java

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

使用python路径设置shebang for python脚本

我有一个脚本,我正在尝试设置shebang,以便我执行 ./script.py而不是python script.py.当它是我脚本的最顶层时,这对我有用

#!/usr/bin/env python.这用env.

当我试图改变这个时 #/usr/local/lib/python2.7,我收到此错误消息

/usr/local/lib/python2.7: bad interpreter: Permission denied
Run Code Online (Sandbox Code Playgroud)

当我检查我的python版本时,它是

>>> import sys
>>> sys.version
'2.7.3 (default, Jun 21 2013, 13:45:37) \n[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]'
>>> 
Run Code Online (Sandbox Code Playgroud)

和sys.path给出/usr/local/lib/python2.7/*.虽然我没有看到任何具体的内容python2.7.3.

你可以指导我如何设置使用pythonpath而不是env.

谢谢

python env shebang pythonpath

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

在Java中将二叉树展平为数组

我发现这个代码用于在Java中将二叉树展平为数组.我很难理解它是如何工作的.

这是代码:

private static int FlattenTreeIntoArray(Node tree, int[] array, int i)
{
    if (tree == null) return i;
    // Flatten left subtree
    i = FlattenTreeIntoArray(tree.Left, array, i);
    // Get data from the current node
    array[i] = tree.Data;
    // Flatten right subtree
    i = FlattenTreeIntoArray(tree.Right, array, i + 1);
    return i;
} 
Run Code Online (Sandbox Code Playgroud)

我的问题如下:

  1. 这是辅助方法,实际调用的方法是什么,或者作为参数(int[] arrayint i)传递的是什么?我们不知道二叉树的大小.

  2. 该方法如何工作?当它treenull,它返回i.那是什么意思?

  3. 扁平化是如何发生的?为什么i+1被传递给right tree,但ileft tree

如果您可以使用此二叉树进行演示,则可以很容易地遵循: 示例二叉树(8(3 1(6 4 7))(10  - (14 13  - )))

java arrays algorithm binary-tree

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

字节码被视为JVM的指令集?

我正在读关于instruction set维基和我碰到这一段就来了:

一些支持字节码作为其ISA的虚拟机,如Smalltalk,Java虚拟机和Microsoft的公共语言运行时,通过将常用代码路径的字节码转换为本机机器代码来实现这一点.此外,这些虚拟机通过解释执行不常用的代码路径(请参阅:即时编译).Transmeta以这种方式在VLIW处理器上实现了x86指令集.

这到底是什么意思?是bytecodesARE ISAJVMJVM在转支持ISA的处理器.

java jvm bytecode processor instruction-set

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

如何在Java或python中获得endianess?

C我可以Endianess通过以下方法的机器.我如何使用pythonJava程序?在Java中,char 2-bytesC它不同1-byte.我认为这可能是不可能的,python因为它是一个dynamic language,但我可能是错的

bool isLittleEndian()
     {
       // 16 bit value, represented as 0x0100 on Intel, and 0x0001 else
       short pattern = 0x0001;
       // access first byte, will be 1 on Intel, and 0 else
       return *(char*) &pattern == 0x01;
     }
Run Code Online (Sandbox Code Playgroud)

c python java endianness

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