小编Seb*_*ian的帖子

SparseArray vs HashMap

我可以想到为什么HashMap带有整数键的SparseArrays 比s 更好的几个原因:

  1. Android的文档SparseArray说"它通常比传统的慢HashMap".
  2. 如果使用HashMaps而不是SparseArrays 编写代码,则代码将与Map的其他实现一起使用,您将能够使用为Maps设计的所有Java API.
  3. 如果你用HashMaps而不是SparseArrays 编写代码,你的代码将在非android项目中工作.
  4. 映射覆盖equals(),hashCode()SparseArray不是.

然而,每当我尝试HashMap在Android项目中使用带整数键的时候,IntelliJ告诉我应该使用一个SparseArray代替.我觉得这很难理解.有谁知道使用SparseArrays的任何令人信服的理由?

java android hashmap sparse-matrix

161
推荐指数
6
解决办法
7万
查看次数

通过注释抑制IntelliJ IDEA中的重复警告

从版本15开始,IntelliJ警告我有关代码重复的信息.

在某些情况下,这可能是故意的,所以我想通过使用@SuppressWarnings注释忽略/禁止此警告.但是这个的正确价值是什么?

编辑:我不是要求完全禁用这种检查,因为有问题是否可以禁用Intellij中的重复代码检测?

code-duplication intellij-idea suppress-warnings

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

用于公开集合的有效替代方案

在C++中,从性能和数据完整性的角度来看,我有哪些替代方案来展示集合?

我的问题是我想将一个内部数据列表返回给调用者,但我不想生成一个副本.Thant让我返回对列表的引用,或指向列表的指针.但是,我并不想让调用者更改数据,我只是想让它读取数据.

  • 我是否必须在性能和数据完整性之间做出选择?
  • 如果是这样,一般来说更好的是走一条路还是特别适合这种情况?
  • 还有其他选择吗?

c++ collections performance data-integrity

12
推荐指数
2
解决办法
620
查看次数

在Monodevelop中将"Ctrl +左键单击"映射到"转到定义"

从Eclipse和IntelliJ我习惯于按住Ctrl并左键单击Go to definition.

Monodevelop还提供了一项Go to definition功能,但我无法将其映射到我最喜欢的Ctrl+左键单击.我知道如何将动作映射到Monodevelop中的键盘快捷键,但似乎无法在这些映射中使用鼠标单击.

知道如何让这个工作吗?或者也许有一个插件?

ide keyboard-shortcuts monodevelop

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

抑制可序列化的“Field May Be Final”警告

在 IntelliJ 中,由于项目的编码指南,我激活了“Field May Be Final”检查。

但这对于Serializable类来说没有意义,因为final类中的字段会导致序列化问题。对于实现该接口的类,是否有可能自动抑制此警告Serializable ?我当前的解决方法是使用@SuppressWarnings("FieldMayBeFinal").

作为对 Kayaman 评论的回应:最终字段的序列化是这里的一个问题,因为这不适用于框架GWT。抱歉,我应该提到这一点。

在此输入图像描述

java gwt final intellij-idea code-inspection

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

在 IntelliJ 中通过 Ctrl + left 查找枚举的用法

在 IntelliJ 中,我可以很容易地通过枚举常量找到枚举常量的用法Ctrl + left click。但是,如果枚举实现了构造函数,我将直接转到该构造函数。

我知道我也可以搜索用法,Alt + F7但是Ctrl + left click即使有构造函数也可以总是这样做吗?

enums intellij-idea

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

如何使用浅克隆获得正确的 git rev-list 计数?

我发现在 gradle 构建期间将 git 修订号添加到我的项目版本中是一个超级聪明的想法,例如major.minor.commit. 这是通过以下方式实现的

git rev-list --count HEAD
Run Code Online (Sandbox Code Playgroud)

现在我使用 gitlab ci ,它只获取最新的 50 个提交:

Fetching changes with git depth set to 50...
Run Code Online (Sandbox Code Playgroud)

所以我最终得到的版本号始终是 50。长话短说,如何使用浅 git 克隆获得正确的计数?

git gradle gitlab-ci

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

Libgdx光没有box2d

我刚开始使用libgdx创建游戏.这是一个使用scene2d ui的自上而下的2D射击游戏.现在我想,我可以在一定程度上添加黑暗和光明,但我不想用box2d重写所有内容.我不需要真实的阴影只是某种环境光和我的角色周围的光环,它不受墙壁和其他障碍物的影响.所以我想知道libgdx中是否有任何一种灯光系统?或者我可以使用box2dlights而不使用box2d body/world ......?谢谢

java lighting box2d libgdx box2dlights

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

@InjectMocks后为空

我在使用JUnit进行单元测试时遇到了一些麻烦.

考虑以下代码:

这是我要测试的类中的dependacy注入,我们称之为Controller.

@Inject private FastPowering fastPowering;  
Run Code Online (Sandbox Code Playgroud)

这是单元测试:

@RunWith(MockitoJUnitRunner.class)
public class ControllerTest {

@Mock
FastPowering fastPower;

@InjectMocks
Controller controller;

@Test
public void test() {
    assertEquals(
            (controller.computeAnswer(new BigDecimal(2), 2)).longValue(),
            (long) Math.pow(2, 2));
    }
}
Run Code Online (Sandbox Code Playgroud)

似乎fastPower为null,请解释如何解决这个问题.空指针异常,因为在.computeAnswer方法中调用了@injected字段(fastPower)

编辑:

解决了我应该读过@Mock和@Spy之间的区别......

null mocking inject mockito

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

为什么具有运行时作用域的库被添加到debugCompileClasspath?

如果我将lib添加到项目中,并运行命令:

> gradlew -q app:dependencies --configuration debugCompileClasspath > app_dependencies_compile.txt
Run Code Online (Sandbox Code Playgroud)

为什么com.github.kolyall:utils:1.0.4lib获取com.android.support:appcompat-v7带有runtime范围的lib(和其他)CompileClasspath?如果他们的范围应该是runtime,为什么他们被添加到CompileClasspath

输出是:

\--- com.github.kolyall:utils:1.0.4
     +--- net.danlew:android.joda:2.8.2
     |    \--- joda-time:joda-time:2.8.2
     +--- com.android.support:appcompat-v7:28.0.0-alpha3 -> 28.0.0 (*)
     +--- com.android.support:design:28.0.0-alpha3
     |    +--- com.android.support:support-annotations:28.0.0-alpha3 -> 28.0.0
     |    +--- com.android.support:support-compat:28.0.0-alpha3 -> 28.0.0 (*)
     |    +--- com.android.support:support-core-ui:28.0.0-alpha3 -> 28.0.0 (*)
     |    +--- com.android.support:support-core-utils:28.0.0-alpha3 -> 28.0.0 (*)
     |    +--- com.android.support:support-fragment:28.0.0-alpha3 -> 28.0.0 (*)
     |    +--- com.android.support:transition:28.0.0-alpha3
     |    |    +--- com.android.support:support-annotations:28.0.0-alpha3 -> 28.0.0
     |    |    \--- com.android.support:support-compat:28.0.0-alpha3 -> …
Run Code Online (Sandbox Code Playgroud)

java android pom.xml maven bintray

7
推荐指数
1
解决办法
120
查看次数