小编Car*_*ter的帖子

为什么Java的TreeSet没有指定其类型参数必须扩展Comparable?

例如,当第二个Object添加到TreeSet时,下面的代码抛出ClassCastException.无法编写TreeSet,因此type参数只能是Comparable类型? TreeSet不会编译,因为Object不是Comparable.通过这种方式,仿制药实际上可以完成它们的工作 - 类型安全.

import java.util.TreeSet;
public class TreeSetTest {
  public static void main(String [] args) {
   TreeSet<Object> t = new TreeSet<Object>();
   t.add(new Object());
   t.add(new Object());
  }
}
Run Code Online (Sandbox Code Playgroud)

java generics icomparable treeset

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

如何在JasperReports中使用条件TextField?

我希望有一对TextFields取决于一个值.并且应根据空白空间调整"y"值.

当值为"0"I 时,我想隐藏TextField.

即我想在下面的jrxml代码中隐藏staticTexttextFieldif参数red是否相等"0"并将蓝色值向上移动:

  <staticText>
    <reportElement x="100" y="30" width="100" height="30"/>
    <text><![CDATA[Red items:]]></text>
  </staticText>
  <textField>
    <reportElement x="200" y="30" width="40" height="30"/>
    <textFieldExpression>
      <![CDATA[$P{red}]]>
    </textFieldExpression>
  </textField>

  <staticText>
    <reportElement x="100" y="60" width="100" height="30"/>
    <text><![CDATA[Blue items:]]></text>
  </staticText>
  <textField>
    <reportElement x="200" y="60" width="40" height="30"/>
    <textFieldExpression>
      <![CDATA[$P{blue}]]>
    </textFieldExpression>
  </textField>
Run Code Online (Sandbox Code Playgroud)

输出示例:

//if blue = 3 and red = 2    if blue = 3 and red = 0    if blue = 0 and red = 2
    Red items: 2 …
Run Code Online (Sandbox Code Playgroud)

java conditional jasper-reports

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

在Android中很好地设置ListView滚动位置

我知道setSelection(),setSelectionFromTop()setSelectionAfterHeaderView(),但他们都不似乎做我想做的.

给定列表中的项目,我想滚动以便它在视图中.如果项目在列表的可见窗口上方,我想滚动直到该项目是列表中的第一个可见项目; 如果项目在可见窗口下方,我希望它向上滚动,直到它是列表中的最后一个可见项目.如果该项目已经可见,我不希望发生任何滚动.

我该怎么做?

android listview scroll

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

如何将Java的主要功能融入您的设计中?

你实际上可以跳过这第一部分,因为它会让人感到困惑,但我会把它放在这里,因为我想知道是否有其他人有同感.我是CS本科生,已经使用Java 3年了,我仍然觉得很难理解如何将Main功能包含在我的设计中.将它自己放在一个类中是错误的,但将它插入另一个类文件也感觉不对.我认为后者是这样的,因为它不适合同类的其他人使它不相干.例如,我不能只在我的DocumentReader对象上粘贴一个main函数.它与对象无关.另一方面,我不能只创建一个只有一个main函数的Main类,因为在面向对象的编程中,你' 应该从物体角度思考,有效地创造一个微型世界.对于那个围绕单个物体的微型世界来说,它只是存在而只是存在.它不是故事中的叙述者和角色,因为它同时没有任何作用.我更喜欢C的主要功能,它与所有东西分开.它使故事的叙述与彼此相互作用的人物分开.

我想知道专业人员如何将main方法与其余代码混合使用.如何使其与其他设计相适应.而且,它们通常是长还是短?

java oop

9
推荐指数
1
解决办法
440
查看次数

如何管理Loopers和Threads(线程不再死了!)

我创建了一个扩展Thread的类,通过LocationManager在非ui线程中检索用户位置.我将它作为一个线程实现,因为它必须在请求时启动并在有限的时间内完成它的工作.顺便说一句,我必须在线程中添加一个Looper对象,以便能够为LocationManager(onLocationChanged)创建处理程序.

这是代码:

public class UserLocationThread extends Thread implements LocationListener {
//...
public void run() {
    try {
        Looper.prepare();
        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
        Looper.loop();
        Looper.myLooper().quit();
    } catch (Exception e) {
        //...
    }
}

@Override
public void onLocationChanged(Location location) {
    locationManager.removeUpdates(this);
    //...
    handler.sendMessage(msg); //this is the handler for communication with father thread
}

//...}
Run Code Online (Sandbox Code Playgroud)

我希望线程启动,接收用户位置数据(在这种情况下只是一次),通过消息将数据发送到主线程给处理程序,然后死掉.问题是,在我的情况下,一旦run方法结束,线程就不会再死了(应该没问题,因为否则onLocationChanged将不会收到新的位置).

但是通过这种方式,假设线程的停止和挂起方法已被弃用,那么至少在这种情况下,使用looper die创建一个线程会是一个好方法吗?

提前致谢 ;)

multithreading android handler looper

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

用于检查数据库是否为空的SQL(无表)

我需要使用SQL查询检查数据库是否完全为空(没有表).如何才能做到这一点?

谢谢您的帮助!

mysql sql

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

是否有任何工具可以重构java代码库的编码风格?

通常,在对现有项目进行一些工作时,我会选择代码库中已经建立的任何样式.但我们的团队必须维护多个中小型项目,这些项目在编码风格上略有不同.如果我们能够清理这些差异,那将更有效,更少混乱.

所以我正在寻找一种允许我重构现有风格的工具.标准代码格式化工具已经提供了许多功能,例如更改缩进样式.我缺少的是一个允许我去除字段和参数名称前缀的工具.在某些项目中,所有成员都以"m"为前缀,所有参数都以"p"为前缀,静态成员以"s"为前缀.

该工具应该能够处理如下情况:

void setValue(String pValue) {
  mValue = pValue;
}
Run Code Online (Sandbox Code Playgroud)

哪个应该成为:

void setValue(String value) {
  this.value = value;
}
Run Code Online (Sandbox Code Playgroud)

该工具应在以下情况下生成警告:

void setValue(String pValue) {
  int value = 42
}
Run Code Online (Sandbox Code Playgroud)

我知道每个主要IDE都提供重构:重命名功能.我正在寻找的是一个处理整个代码库的工具,而不需要单独遍历每个参数/字段.

编辑

很多答案提到了重新格式化源代码或根据一组样式规则检查代码库的工具.我知道这些工具存在.我特别想要的是一个高级工具,它允许我删除范围特定的变量名称前缀.

java refactoring coding-style

8
推荐指数
0
解决办法
974
查看次数

禁用自定义背景android按钮

当我有一个Android按钮并将其设置为禁用时,该按钮似乎是"透明的".

我有一个按钮,具有自定义背景,用于按下和聚焦状态.我想从代码中禁用它.当我尝试button.setEnabled(false);我禁用按钮但它保持相同的自定义背景.知道如何禁用我的自定义按钮并将背景更改为透明吗?

android button transparent

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

如何在Visual Studio中重构而不丢失源代码控制历史记录?

在重构应用程序时,使用ReSharper在Visual Studio 2010中移动/重命名源文件是一个巨大的帮助.Perforce源代码控制集成无法处理这些类型的更改,而不将其视为不相关的"从此处删除""添加到此处",这会打破历史链.我的问题是:

  1. 有没有办法强制Perforce插件首先做正确的事情?
  2. 如果没有,有没有办法在外部事后调和?(Perforce有没有办法识别已被移动并可能重命名并且内容更改有限的文件?)
  3. 是否有其他源代码控制产品可以透明地处理这个问题?

谢谢!

version-control resharper refactoring perforce visual-studio

8
推荐指数
1
解决办法
2126
查看次数

在一台计算机上测试多个Android设备

我有两个不同的Android设备插入同一台机器.我想做的是针对每个设备并分别对其执行测试.

不幸的是,似乎每次都需要拔掉其中一个设备来运行测试,因为如果我不这样做,我会收到以下错误:

error: more than one device and emulator
Run Code Online (Sandbox Code Playgroud)

有没有人知道这个问题的解决办法,以便我可以简单地插入两个设备并运行我的测试?

testing android device calabash-android

8
推荐指数
1
解决办法
2803
查看次数