小编Har*_*ish的帖子

为什么外部Java类可以访问内部类私有成员?

我观察到外类可以访问内部类私有实例变量.这怎么可能?以下是演示相同内容的示例代码:

class ABC{
    class XYZ{
        private int x=10;
    }

    public static void main(String... args){
        ABC.XYZ xx = new ABC().new XYZ();
        System.out.println("Hello :: "+xx.x); ///Why is this allowed??
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么允许这种行为?

java private class inner-classes private-members

169
推荐指数
6
解决办法
9万
查看次数

是否有一个通用的Java实用程序来将列表分成批处理?

我自己写了一个实用程序来将列表分成给定大小的批次.我只是想知道是否已经有任何apache commons util.

public static <T> List<List<T>> getBatches(List<T> collection,int batchSize){
    int i = 0;
    List<List<T>> batches = new ArrayList<List<T>>();
    while(i<collection.size()){
        int nextInc = Math.min(collection.size()-i,batchSize);
        List<T> batch = collection.subList(i,i+nextInc);
        batches.add(batch);
        i = i + nextInc;
    }

    return batches;
}
Run Code Online (Sandbox Code Playgroud)

如果已有相同的实用程序,请告诉我.

java collections

127
推荐指数
10
解决办法
9万
查看次数

最终静态方法的行为

我一直在玩静态方法的修饰符,并遇到了一个奇怪的行为.

我们知道,静态方法不能被覆盖,因为它们与类而不是实例相关联.

所以,如果我有下面的代码片段,它编译得很好

//Snippet 1 - Compiles fine
public class A {
    static void ts() {
    }
}

class B extends A {
    static void ts() {
    }
}
Run Code Online (Sandbox Code Playgroud)

但是如果我在A类中将final修饰符包含到静态方法中,则编译失败 ,B中的ts()不能覆盖A中的ts(); 重写方法是静态最终的.

当静态方法根本无法被覆盖时,为什么会发生这种情况?

java methods static final

117
推荐指数
4
解决办法
4万
查看次数

调用超级超类方法

假设我有三个A,B和C类.

  • B延伸A.
  • C延伸B.

都有public void foo()定义的方法.

现在从C的foo()方法我想调用A的foo()方法(不是它的父B的方法,而是超级超类A的方法).

我试过super.super.foo();,但这是无效的语法.我怎样才能做到这一点?

java inheritance overriding

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

SQL Query从dual返回N行

我想编写一个接受绑定变量(例如:NUM)的SQL查询,其输出包含一列&:NUM行数,每行包含行号.即如果我们传递:NUM为7,则输出应为:

VAL
====
1
2
3
4
5
6
7
Run Code Online (Sandbox Code Playgroud)

查询中不应该有任何实际的DB表,也不应该使用PL/SQL代码.即在查询中只应使用dual

有没有办法实现这个目标?

sql oracle plsql

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

CPU进程是否至少有一个线程?

我知道线程用于多任务处理并且它们重量轻.但我怀疑的是,我说我需要一个没有任何多任务的过程.我刚刚创建了一个流程.现在CPU会将单个线程关联到进程,还是单独执行进程而不需要线程?

请澄清.

问候,哈里什

cpu process

9
推荐指数
2
解决办法
3559
查看次数

为什么java具有与C不同的固定数据类型大小

C中,我们知道数据类型(例如int)的大小可能因编译器/硬件而异.

但是为什么数据类型的大小在java语言中是不变的?为什么我们不具备java中不同数据类型大小的灵活性,具体取决于编译器?

java size types primitive-types

8
推荐指数
2
解决办法
3204
查看次数

选择简单Apache Synapse Vs WSO2的标准

在评估各种ESB时,我遇到了Apache Synapse和WSO2.在WSO2中,提到WSO2完全使用Synapse并在其基础上构建.

但是我还不清楚WSO2在Synapse上提供了哪些附加功能?(除了商业支持).

我可以看到的一个区别是用于管理代理定义,序列创建等的Web UI.WSO2是否还提供了其他功能而不是Synapse?如果在Synpase和WSO2之间有任何指导可供选择,请分享

我只是想确定为什么要通过Synapse去WSO2.

谢谢,哈里什

wso2 apache-synapse wso2esb

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

在Elastic Search中使用长度为100个字符的字符串作为_Id列的性能影响

我计划将事件存储在弹性搜索中.它可以在任何时间点拥有大约1亿个事件.为了重复删除事件,我计划通过连接以下字段来创建长度为100个字符的_id列entity_id - UUID(37个字符)+ event_creation_time(30个字符)+ event_type(30个字符)

此商店将具有正常的读取和写入以及聚合查询(无更新/删除)如果使用此类冗长的字符串_id列而不是默认ID,是否会对性能产生任何影响或任何其他副作用,请告诉我.

谢谢,哈里什

search elasticsearch

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

如何对使用Java UUID的代码进行单元测试?

我有一段代码,希望用Java UUID(UUID.randomUUID())填充响应对象的一个​​属性.

如何从外部对此代码进行单元测试以检查此行为?我不知道将在其中生成的UUID.

需要测试的示例代码:

// To test whether x attribute was set using an UUID
// instead of hardcode value in the response
class A {
  String x;
  String y;
}

// Method to test
public A doSomething() {
  // Does something
  A a = new A();
  a.setX( UUID.randomUUID());
  return a;
}
Run Code Online (Sandbox Code Playgroud)

java uuid unit-testing

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