小编Yos*_*ale的帖子

使用反射来迭代类成员

我有一个包含各种类型参数的类.我想迭代所有类型的A成员,并运行一个特定的函数(A.doSomething())

这甚至不编译:从字段到XPathDataElement的转换是非法的

Field[] fields = this.getClass().getDeclaredFields();
  for (Field field : fields) {
     if (field. getType().getName().equals(XPathDataElement.class.getName()))
        {               
                tmp = (XPathDataElement)field; // Doesn't compile
                sb.append(field.getName() + ":"); 
                tmp.update();
        }
    }
Run Code Online (Sandbox Code Playgroud)

谢谢!

java reflection

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

C#:名称空间和类结构

来自Java,我已经习惯了包结构(com.domain.appname.tier)现在我开始研究一个C#项目,其中所有项目的深度都是1:

ProjectA
- Utilities.cs
- Validation. cs
- ....
- Extraction.cs

并且所有cs文件大约有2,500行...

你如何在C#中命令你的类和命名空间,这样才有意义,并保持源文件的逻辑大小?

c# namespaces

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

Swing - 如何处理多个交叉依赖组件?

这是一个更普遍的问题:我有一个非常复杂的文件表(数据模型并不简单),当用户点击一个条目时,另外两个视图组件需要更改 - 文件统计视图和文件内容视图 - 两者都在同一个屏幕上.

一个选项是将所有这些组件类定义放在同一个文件中,然后相互引用 - 但这会产生非常混乱的代码.

我能想到的另一个选择是将统计信息和内容组件传递给表对象,并让他使用它 - 但这会使表不能 - 可以在其他任何地方重用.

我确信有更好的方法 - 你会建议做什么?

选项1:

class MyPanel extends JPanel{

private MyTable table;
private MyFileViewer fv;
private MyFileStats stats;

class MyTable {
   addMouseListener({ ... fv.update(); stats.update(); })
}
class MyFileViewer{...}
class MyFileStats{...}
}
Run Code Online (Sandbox Code Playgroud)

选项2:

class MyTable {

   MyTable(MyFileViewer fv, MyFileStats stats) { ... 
       addMouseListener({fv.update, stats.update ... } 
   }    
}
Run Code Online (Sandbox Code Playgroud)

java swing

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

Groovy:子串的索引?

如何在大字符串中找到子字符串的所有出现的索引 - (基本上,以及"indexOf"函数的扩展).有任何想法吗?

现在的情况:

def text  = " --- --- bcd -- bcd ---" 
def sub = "bcd"
text.indexOf(sub) 
// = 9
Run Code Online (Sandbox Code Playgroud)

我想要的东西:

def text  = " --- --- bcd -- bcd ---" 
def sub = "bcd"
text.indexesOf(sub) 
// = [9,15]
Run Code Online (Sandbox Code Playgroud)

有这样的功能吗?我该怎么办呢?(以非平凡的方式)

groovy

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

Mongodb:更新变量字段名称

我想为DB中的对象添加一个带有变量名的新字段:意思是,我不知道该字段的名称,但它保存在变量"newFieldName"中.

所以我想要做的基本上是这样的:

var newFieldName = "world";
db.bios.update(
   { _id: 3 },
   { $set: {
             "hello."+newFieldName: "Amazing Grace"
           }
   }
)
Run Code Online (Sandbox Code Playgroud)

在更新之后,我希望对象"hello"具有值为"Amazing Grace"的字段"world".

但这甚至没有编译,更不用说工作了.我该怎么做?

mongodb node.js

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

在Ionic + Cordova应用程序中添加应用程序快捷方式到android主屏幕

我正在为android编写一个离子应用程序(使用coffeescript和angular),我想在主屏幕上添加应用程序的快捷方式.谷歌没有帮助,这个cordova/phonegap插件也无法正常工作.

有什么想法怎么做?

android cordova ionic-framework cordova-plugins

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

如何安排Callable在特定时间运行?

我需要在一天的特定时间运行一个可调用的.一种方法是计算now和所需时间之间的timediff,并使用executor.scheduleAtFixedRate.

有更好的主意吗?

executor.scheduleAtFixedRate(command, TIMEDIFF(now,run_time), period, TimeUnit.SECONDS))

java scheduling callable

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

检查所有功能中的所有功能参数

当我第一次从c转移到Java时,我认为我已经完成了所有烦人的参数检查,在每个函数的开头.(有福的例外)

最近我意识到我正在慢慢地再次回到那种做法,而我开始对所有这些都感到非常恼火

if (null == a || null == b || null == a.getValue() || ...) 
{
  return null;
}
Run Code Online (Sandbox Code Playgroud)

例如,我有一个实用程序类,用于分析网页并从中提取特定元素.任何使用null元素调用dom对象函数通常都会导致异常 - 所以在我在这个类中编写的几乎所有函数中都有无数的null检查:

private URL extractUrl(Element element) throws Exception {
if (null == element) {
  return null;
} ... 

public List<Object> getConcreteElements(String xpath) throws Exception {
if (null == xpath) {
  return Collections.emptyList();
}...

public String getElementsAsXML(String xpath) throws Exception {
if (null == xpath) {
 return null;
}...
Run Code Online (Sandbox Code Playgroud)

在每个功能的开头.这是我应该习惯的东西,还是有一些我不知道的编码习惯可以简化我的生活?

java validation parameters function

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

Groovy:按值值排序哈希键

我想通过值对key-> value的哈希进行排序,并获取排序键的列表.

这似乎有效:

groovy> def map = [a:5, b:3, c:6, d:4].sort { a, b -> a.value <=> b.value }.keySet() 
groovy> println map 

[b, d, a, c]
Run Code Online (Sandbox Code Playgroud)

但它会一直有效吗?我不知道构建keySet()的迭代器是否总是按顺序迭代它们.

谢谢!

sorting hash groovy

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

在Android上安装/更新Cordova应用程序时出现错误-505

我们的一些用户在尝试从Play商店安装/更新我们的应用时遇到了此错误。使用adb install在本地检查时,错误似乎是"INSTALL_FAILED_CONFLICTING_PROVIDER".

该解决方案人建议在这里通常是改变AndroidManifest.xml中或gradle这个构建文件,但由于这些文件是在科尔多瓦构建过程中自动生成的,我们不能这样做。有想法吗?

android cordova

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