小编use*_*893的帖子

@Nullable注释用法

我在java中看到一些方法声明为:

void foo(@Nullable Object obj)
{ ... }
Run Code Online (Sandbox Code Playgroud)

这是什么意思@Nullable?这是否意味着输入可能是null?没有注释,输入仍然可以为空,所以我猜这不仅仅是它吗?

谢谢

java annotations

329
推荐指数
4
解决办法
20万
查看次数

C中struct成员的默认值

是否可以为某些结构成员设置默认值?我尝试了以下但是,它会导致语法错误:

typedef struct
{
  int flag = 3;
} MyStruct;
Run Code Online (Sandbox Code Playgroud)

错误:

$ gcc -o testIt test.c 
test.c:7: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token
test.c: In function ‘main’:
test.c:17: error: ‘struct <anonymous>’ has no member named ‘flag’
Run Code Online (Sandbox Code Playgroud)

c struct

66
推荐指数
4
解决办法
15万
查看次数

无法找到javadoc命令 - maven

我在项目目录中运行此命令来构建和打包它:

mvn clean javadoc:jar package
Run Code Online (Sandbox Code Playgroud)

我确实JAVA_HOME正确设置了变量.显然:

$ which java
/usr/bin/java
$ sudo ls -l /usr/bin/java
lrwxr-xr-x  1 root  wheel  74 Dec 18 23:42 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

$ which javadoc
/usr/bin/javadoc
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么mvn还在抱怨?

Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.8:jar (default-cli) on project foo_bar: MavenReportException: Error while creating archive: Unable to find javadoc command: The environment variable JAVA_HOME is not correctly set. -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

macos javadoc maven

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

将文本从Windows CMD窗口复制到剪贴板

有谁知道是否可以从Windows的命令提示符或控制台窗口复制文本,如命令,控制台应用程序或批处理文件的输出?

windows cmd batch-file

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

未定义的对<function name>的引用

我有这个简单的测试文件:

#include "stack.h"

int main()
{
  Stack* stck = init_stack();

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

stack.h定义如下:

#ifndef STACK_H
#define STACK_H

#define EMPTY_STACK -1
typedef struct stack
{
  char ch;
  struct stack* prev;
} Stack;

extern Stack* init_stack();

extern char pop(Stack*);

extern void push(Stack*, char);

#endif
Run Code Online (Sandbox Code Playgroud)

这两个文件位于同一目录中.但是当我gcc ..构建它时,我不断收到以下错误:

$ ls
stack.c  stack.h  teststack.c
$ gcc -o testit teststack.c 
/tmp/ccdUD3B7.o: In function `main':
teststack.c:(.text+0xe): undefined reference to `init_stack'
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这里做错了什么?

谢谢,

c gcc header-files

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

Java中的"Boolean.TRUE.equals(x)"有什么理由吗?

我在其中一个项目中遇到过这段代码

(这是Java)

if (Boolean.TRUE.equals(foo.isBar()))
Run Code Online (Sandbox Code Playgroud)

Foo#isBar()被定义为boolean isBar(),所以它无法返回null

真的有什么理由说它应该这样写吗?我自己也会写

if (foo.isBar())
Run Code Online (Sandbox Code Playgroud)

,但也许我错过了一些微妙的东西.

谢谢

java boolean-expression

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

为什么'\ 117'是Java中有效的字符文字?

我已经看到这个char被定义为 char ch = '\117'

什么样的表现形式'\117'

我知道escaped-sequence'\n',例如,或者unicode`\udddd',这里d是一个十六进制数字,但我从来没有见过这样的事情'\117'在我的整个人生!令人惊讶的是,它确实编译!(而且输出是O)

java character special-characters

16
推荐指数
2
解决办法
832
查看次数

算术与布尔运算

我在一些论坛中遇到过这段代码:

if ( a * b * c * d == 0 ) ....

并且所有者声称这比它快一点

if (a == 0 || b == 0 || c == 0 || d == 0)

这些变量定义为:

int a, b, c, d;

并且它们的绝对值保证小于或等于100.(所以我们可以忽略溢出的可能性)

如果我们只是忽略readability并只关注性能,那么声明是否真的正确?

在我看来,第二种方法可能实际上更快,因为你有时可以利用"短路".但那么,我知道什么?!

c boolean arithmetic-expressions

15
推荐指数
2
解决办法
2863
查看次数

从String中删除最后一个和第一个字符

使用awk/ 删除字符串中的第一个和最后一个字符相当容易sed吗?

说我有这个字符串 ( 1 2 3 4 5 6 7 )

我想从中删除括号.

我该怎么做?

awk sed

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

递增struct成员

假设我有一个如下定义的结构

struct my_struct
{
     int num;
};
Run Code Online (Sandbox Code Playgroud)

....

这里我有一个指针my_struct,我想做一个增量num

void foo(struct my_struct* my_ptr)
{
     // increment num
     // method #1
     my_ptr->num++;

     // method #2
     ++(my_ptr->num);

     // method #3
     my_ptr->++num;

}
Run Code Online (Sandbox Code Playgroud)

这三种递增方式是否num做同样的事情?虽然我们正处于这种状态,但预增量是否比后增量更有效?

谢谢!

c struct increment pre-increment

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