是否有 Java 库允许您在编译时确定将某个类导入到不需要的地方?
我怎么看:
@VisibleFor(some.packagee.name)
public class AlmostPublic {
// ...
}
现在尝试AlmostPublic在包外的任何地方导入类some.packagee.name应该会引发编译错误。
是否有 Java 库允许您在编译时确定将某个类导入到不需要的地方?
我怎么看:
@VisibleFor(some.packagee.name)
public class AlmostPublic {
// ...
}
现在尝试AlmostPublic在包外的任何地方导入类some.packagee.name应该会引发编译错误。
有一个特定的通用接口和一个实现它的类。
interface Contract<T> {
void doIt(T arg);
}
class Impl implements Contract<Integer> {
@Override
public void doIt(Integer arg) {
System.out.println("hi");
}
}
当创建一个实例Impl并调用这样的方法时
Contract obj = new Impl();
obj.doIt(42);
编译器礼貌地警告 Unchecked call ... 。
我得出以下结论 - 编译器不会查看实际会调用哪个类方法。在这里,他看着他们Contract#doIt(T arg)正在拉动的东西,并警告说有必要转移类型。并且将类型转移到将完成所有工作的类的事实对其隐藏。
我理解正确吗?
有一个方法返回一个抽象类的实例和接受所有现有后代的重载方法。
AbstractClass getSuccessor() {
return ...;
}
void work(SonOfAbstract child);
void work(DaughterOfAbstract child);
void work(GrandchildOfAbstract child);
该方法getSuccessor()保证返回一个继承人AbstractClass,并且该方法work可以与所有继承人一起使用。
但是调用work(getSuccessor());没有按预期通过,因为方法work(AbstractClass child)没有定义。在真空中没有父母和球形孩子的工作。
如何将继承人传递给方法,并让 JRE 确定要调用的方法?
有没有办法在 android studio a la outline/outshine-mode 在 emacs 中通过评论来安排折叠?
换句话说,这段代码
class SomeClass {
// * group of related methods 1
void method1() { ... }
void method2() { ... }
void method3() { ... }
void method4() { ... }
// * group of related methods 2
void method1() { ... }
void method2() { ... }
void method3() { ... }
void method4() { ... }
// * group of related methods 3
void method1() { ... }
void method2() { ... }
void method3() { ... }
void method4() { ... }
}
像这样卷起来
class SomeClass {
// * group of related methods 1 ... (типо свернули)
// * group of related methods 2
void method1() { ... }
void method2() { ... }
void method3() { ... }
void method4() { ... }
// * group of related methods 3 ... (типо свернули)
从java到你,所以问题可能是微不足道的。有两个类 -Something和SomethingGroup。受到以下事实的启发:在 android-framework 中,它ViewGroup继承自以及将混合和存储在一个列表中View的便利性,直接继承自:SomethingSomethingGroupSomethingGroupSomething
class Something {
private String name;
private int count;
public Something(String name, int count) {
this.name = name;
this.count = count;
}
public int getCount() {
return count;
}
}
class SomethingGroup extends Someting {
private String name;
ArrayList<Something> children;
SomethingGroup(String name, Something ... children) {
// super(и вот что ему сюда передать?)
this.name = name;
this.children = new ArrayList<>(Arrays.asList(children));
}
public int getCount() {
int count = 0;
for(Something s : children) {
count += s.getCount();
}
return count;
}
}
问题出在财产count上。在创建对象Something时,我们知道它的值,可以直接将其传递给构造函数,而在创建SomethingGroup这个值时,这个值是“间接”传递的,必须进行计算。在这种情况下如何行事?
你好。一个脚本已经在 Internet 上流传了很长时间,它允许您在任何应用程序中翻译选定的文本。算法很简单——通过调用脚本,我们读取主要选择的内容(xsel 到帮助),向 Google 翻译器发送请求并通过例如 notify-send 显示结果。当主要选择发生变化时如何自动调用此脚本?
你好。
git init
echo first > file
git add file
echo second > file
git add file
echo third > file
git add file
执行这些命令后如何获取添加到索引的文件的第一或第二版本?
创建了一个包含以下内容的文件:
#!/bin/bash
alias some='echo 2'
赋予他执行权,脚本执行时什么也没有发生(不创建别名)。我究竟做错了什么?bash 版本 - 4.3.46
你好。我想做以下事情:
这是我提供给 xkbcomp 的配置:
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols {
// include "pc+us+ru:2+inet(evdev)+group(shift_caps_switch)"
replace key <CAPS> { [ Control_L ] };
replace key <LCTL> { [ Caps_Lock ] };
include "pc+us+ru:2+inet(evdev)+group(shift_caps_switch)"
};
xkb_geometry { include "pc(pc105)" };
};
问题是所有的东西都不是立刻给出的——要么按钮改变了,要么布局切换被配置了。怎样成为?