我有一个名为A的简单类,它有两个私有字段。
public class A {
private String a;
private String b;
} // A
Run Code Online (Sandbox Code Playgroud)
当我从类实例获得所有声明的字段时,我又得到一个名为$ change of type的额外字段com.android.tools.fd.runtime.IncrementalChange。它来自哪里?我完全不明白这一点。
Field[] fields = cls.getDeclaredFields();
for (int i = 0, len = fields.length; i < len; i++) {
Field field = fields[i];
field.setAccessible(true);
Log.d("TAG", field.getName());
if (field.isAnnotationPresent(Primary.class)) {
query += getFromalName(field.getName()).toUpperCase() + " " + getSchemaType(field.getType().getSimpleName()) + " PRIMARY KEY, ";
continue;
}
if (field.isAnnotationPresent(NotNull.class)) {
query += getFromalName(field.getName()) + " " + getSchemaType(field.getType().getSimpleName()) + " NOT …Run Code Online (Sandbox Code Playgroud) 我怎样才能获得package name,generic type并且Parametrized type从type从field element在注释处理器?
说,如果Element.asType回来java.util.List<String>,我想得到
java.utilList<E>或原始类型List(最好是原始类型)String有没有方法element utils,type utils?
我正在阅读Richard Warburton的Java 8 Lambdas一书中的lambdas.他开始在现代CPU中使用并发性进行讨论,并最终将它与lambdas相关联.我不知道我错过了什么,但我肯定没有得到这个概念.考虑以下课程
class A {
private int state;
A(){
state = 0;
}
A(int state){
this.state = state;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
@Override
public String toString() {
return Integer.toString(state);
}
} // end A
public class Main {
public static void main(String[] args) {
List<A> ls = new ArrayList<>();
ls.add(new A(2));
ls.add(new A(3));
ls.forEach( a -> a.setState(a.getState() + 1) );
System.out.println(ls); …Run Code Online (Sandbox Code Playgroud) 如果$代表Angular中的内置服务,这个$$前缀是什么意思?我只是在Console中检查范围并看到了$$watchers, $$listeners等等
当我打电话时,android会在哪里添加片段 FragmentTransaction add (Fragment fragment, String tag)
我编写了这段代码,但我看不到片段的布局.它显示一个空屏幕.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Fragment fragment = new TestFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(fragment, "test");
ft.commit();
} // onCreate
public class TestFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.frag_layout, container, false);
}
} // TestFragment
Run Code Online (Sandbox Code Playgroud) open class A
class B: A()
fun <T> copy(src: MutableList<T>, dst: MutableList<T>) {
for (i in 0 until src.size) {
dst.add(i, src[i])
}
}
Run Code Online (Sandbox Code Playgroud)
对于上面提到的代码,我理解copy function期望两个类型参数的类型完全相同。稍微修改copy(src: MutableList<T>, dst: MutableList<in T>)一下in关键字,我是说它src 必须是完全类型,T但目的地可以是Ttype T或任何超类型。
对于上述修改后的代码,我可以调用如下方法,
fun main(args: Array<String>) {
val l1 = mutableListOf(B(), B())
val l2 = mutableListOf<A>()
copy(l1, l2)
} // main
Run Code Online (Sandbox Code Playgroud)
copy(l1, l2)如果我in从目的地删除(理解),上述方法不起作用。
我的问题是,如果更新函数参数src以接受out列表的投影,我可以毫无错误地调用该函数。例如
fun …Run Code Online (Sandbox Code Playgroud) 为什么我们不能在点表达式中使用整数键来访问属性值?
var obj = {1: 'one', two: '2'}
console.log(obj.1) // error
console.log(obj.two)
Run Code Online (Sandbox Code Playgroud) java ×3
android ×2
angularjs ×1
annotations ×1
covariance ×1
generics ×1
java-8 ×1
javascript ×1
kotlin ×1
lambda ×1
object ×1
reflection ×1