小编Lit*_*per的帖子

最终定义不明确吗?

首先,一个难题:以下代码打印什么?

public class RecursiveStatic {
    public static void main(String[] args) {
        System.out.println(scale(5));
    }

    private static final long X = scale(10);

    private static long scale(long value) {
        return X * value;
    }
}
Run Code Online (Sandbox Code Playgroud)

回答:

0

下面的剧透.


如果您打印X的规模(长),并重新定义X = scale(10) + 3,印刷品会X = 0那么X = 3.这意味着X暂时设置为0以后设置为3.这是违反final!

static修饰符与final修饰符结合使用,也用于定义常量.最终修饰符表示此字段的值不能更改.

来源:https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html [强调添加]


我的问题:这是一个错误吗?被final定义不清?


这是我感兴趣的代码. X分配了两个不同的值:03.我认为这违反了 …

java final class-variables static-initialization

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

JPanel,JFrame,JComponent和JApplet之间的区别

我正在制作一个有趣的物理模拟器,当我试图弄清楚所有这些J之间的区别时,我正在查找图形教程.有人可以详细说明它们,或者提供一个有用的来源链接吗?

java jcomponent jpanel jframe japplet

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

从Git迁移到SVN

我有一个项目需要将Git存储库移植到SVN.我尝试了几种在线发布的方式,但它们都不适合我.如果有人能提供帮助,我们将非常感激.

我按照指南

  • 将Git repo克隆到工作副本
  • 进入副本
  • 将头部倒回第一次提交
  • 樱桃采摘所有提交
  • git svn rebasegit svn dcommit

这种方法的问题是我的Git存储库有一个复杂的历史.有许多分支出局和合并.当我选择樱桃时,它只会回收最终存储库的一部分.

问题:有没有办法避免樱桃采摘和git svn rebase?也许用其他东西替换它?

我关注这篇网络帖子:将Git repo迁移到svn

这篇文章基本上

  • 没有 git svn clone
  • 在克隆的工作副本中获取了git repo
  • 将主人分支到old_master
  • 将所有提交从old_master应用到master(git svn rebase)
  • 没有 git dcommit

这种方法的问题类似于我在第一篇中所遇到的问题:当我这样做时git svn rebase,存在很多冲突.另外,当我跳过所有冲突时,git dcommit失败了.它告诉我:Unable to determine upstream svn information from HEAD history.

我不知道从这一点开始还有什么可以尝试的.如果您发现我做错了或有其他办法,请提出任何建议.赞赏它!!

svn migration git

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

Java使用Xbox控制器

您建议将我的Xbox 360控制器连接到Java,并能够将键输入作为KeyEvent读入keyPressed事件库.

所以我想要这样的东西

private class KeyInputHandler extends KeyAdapter {
    public void keyPressed(KeyEvent e) {
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望所有控制器按下进入keyPressed.

如果你能为PS3控制器提供好的库,我将非常感激.

java xbox360

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

如何在单元测试中模拟JPA存储库的save方法

例如,我在UserService中有以下方法:

  @Override
  @Transactional
  public UserDto create(UserDto userDto) {

    User dbUser = userRepository.findOne(userDto.getId());

    if (dbUser != null) {
      throw new AuthException(AuthException.ErrorCode.DUPLICATE_USER_EXCEPTION);
    }

    User oneByLogin = userRepository.findOneByLogin(userDto.getLogin());
    if (oneByLogin != null) {
      throw new AuthExceptionAuthException.ErrorCode.DUPLICATE_LOGIN_EXCEPTION);
    }

    User newUser = new User();
    newUser.setGuid(UUID.randomUUID().toString());
    newUser.setInsertDate(new Date());
    newUser.setFirstName(userDto.getFirstName());
    newUser.setLastName(userDto.getLastName());
    newUser.setLogin(userDto.getLogin());
    newUser.setPassword(userDto.getPassword());
    newUser.setAuthToken(TokenGenerator.nextToken());
    newUser.setAuthTokenCreatedDate(new Date());

    User savedUser = userRepository.save(newUser);

    userDto.setAuthToken(savedUser.getAuthToken());
    log.info("User {0} created", savedUser.getLogin());
    return userDto;
  }
Run Code Online (Sandbox Code Playgroud)

如何为该方法创建单元测试?我接下来尝试了:

  @Test
  public void createUser() {

    UserDto userDtoRequest = new UserDto();
    userDtoRequest.setLogin("Alex");
    userDtoRequest.setPassword("123");

    UserDto found = userService.create(userDtoRequest);
    assertThat(found.getAuthToken()).isNotEmpty();
} …
Run Code Online (Sandbox Code Playgroud)

java spring unit-testing mockito

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

Java ArrayList添加当前大小以外的项目

想知道是否有一种有效的方法将项目添加到Java的ArrayList中,其位置比当前大小更大:

场景:

   ArrayList<Item> items = new ArrayList<Item>;
   ... let's say I add three elements
Run Code Online (Sandbox Code Playgroud)

现在我想在位置10添加一个项目(将项目从3到10保留为null)

  items.add(10,newItem);  // item.size() == 3 
Run Code Online (Sandbox Code Playgroud)

是否有一种有效的方法可以使用null调整/填充ArrayList?

Java的实现使大小字段私有:-( ..

java arraylist

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

了解 PDFBox 2.0 中字体的加载

我终于成功地让 PDFBox 打印了我的 unicodes。但是现在,我想了解我提出的解决方案。下面的代码有效并将 a 打印?到页面。

两件事不起作用:

  • 更改 PDType0Font.load(documentMock, systemResourceAsStream, true);PDType0Font.load(documentMock, systemResourceAsStream, false);

  • 更改 final PDFont robotoLight = loadFontAlternative("Roboto-Light.ttf");final PDFont robotoLight = loadFont("Roboto-Light.ttf");

第一个更改打印两个点而不是字符。 embedSubset 有什么作用,因为它在设置为 false 时不起作用? 文档太少,我无法理解。

第二个更改提供了以下异常Exception in thread "main" java.lang.IllegalArgumentException: U+2265 is not available in this font's encoding: WinAnsiEncoding 此问题已在许多其他问题中涵盖,这些问题早于 PDFBox 2.0,其中在处理 unicode 时存在错误。所以,他们不直接回答这个问题。除此之外,问题很明显:我不应该将编码设置为 WinAnsiEncoding 而是不同的东西。 但是编码应该是什么?为什么没有UTF-8编码或类似的可用? COSName 中没有关于许多选项的文档。

public class SimpleReportUnicode {
    public static void main(String[] args) throws IOException {
        PDDocument report = createReport();
        final String …
Run Code Online (Sandbox Code Playgroud)

pdfbox

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

如何在textInput React Native中停止输入空格?

如何在React Native中的密码输入字段中停止输入空格?

password 可能是任何角色,包括空间.

我试过这个:validator.js

const extract = (str, pattern) => (str.match(pattern) || []).pop() || '';

export function removeWhiteSpace(str) {
  return extract(str, '/^\S*$/;');
}
Run Code Online (Sandbox Code Playgroud)

login.js

passwordHandle(value){
  this.setState({
      password:removeWhiteSpace(value)
  })
  console.log(removeWhiteSpace(value))
}
Run Code Online (Sandbox Code Playgroud)

渲染()

<View style={{paddingBottom:25}}>
  <TextField 
    label='Password'
    type='password' 
    value={password}
    error={errors.password}
    icon
    onChange={this.passwordHandle}/>
  <Image 
    source={require('../../../assets/img/lock.png')}
    style={styles.icon} />
</View>
Run Code Online (Sandbox Code Playgroud)

但它不起作用.它只执行'/ ^\S*$ /;' 来自removeWhiteSpace.

javascript reactjs react-native

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

用Bun检查文件夹是否已经存在

如何使用 Bun 检查文件夹是否已存在?

我尝试了以下操作但没有成功:

const path = "folderName"
const file = Bun.file(path)
await file.exists()
Run Code Online (Sandbox Code Playgroud)

基于文件处理指南: https://bun.sh/guides/read-file/exists

我知道它是用于检查文件是否存在,但通常您可以对文件夹执行相同的操作。我通过引用文件夹内的文件来检查路径是否正确folderName/fileName,并且它有效。

如何使用 Bun 检查文件夹是否已存在?

bun

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

为什么 Lombok 的 @Builder 中有包私有构造函数?

最近,我遇到了 Lombok 的构建器,坦白说很喜欢它。然后我了解到许多资源(例如Effective Java)都描述了Builder 模式。 有点像这样

现在,在此模式中,构造函数保持私有,以便只能通过使用构建器来创建类的实例。

但是,在 Lombok 的构建器文档中,构造 函数可见性保持为包私有。将其保留为私有包的原因可能是什么?

java builder lombok

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