小编Mur*_*nik的帖子

如何确定Java方法是否修改作为参数传递的对象

我来自C++背景,目前我正在学习Java.当我尝试使用某些第三方库时出现了一个问题.如何确定对作为参数的对象引用的方法的调用是否修改了对象?在C++中,由于使用了const关键字,因此很清楚.如果方法签名是:

void foo(Boo& boo);
Run Code Online (Sandbox Code Playgroud)

我知道引用的对象可能会被修改,而如果方法签名是:

void foo(const Boo& boo);
Run Code Online (Sandbox Code Playgroud)

编译器保证不会修改引用的对象.

我没有在Java中看到类似的东西,因为只有引用本身可以被声明为final,而不是引用的对象,并且最终的参数在第一个地方没有多大意义,因为它无论如何都是通过值传递的.因此,当我看到一个方法,如:

void foo(Boo boo) {...}
Run Code Online (Sandbox Code Playgroud)

如何确定boo引用的对象是否在函数体内修改(可能使用注释)?如果没有办法知道,是否有一些广泛使用的约定或一些最佳实践来避免混淆和错误?

java immutability

32
推荐指数
4
解决办法
2811
查看次数

如何将列表作为参数传递给存储过程?

希望传递用户ID列表以返回列表名称.我有计划处理输出的名称(使用COALESCE或其他东西),但试图找到传递用户ID列表的最佳方法.我的sproc的内容看起来像这样:

create procedure [dbo].[get_user_names]
@user_id_list, --which would equal a list of incoming ID numbers like (5,44,72,81,126)
@username varchar (30) output
as
select last_name+', '+first_name 
from user_mstr
where user_id in @user_id_list
Run Code Online (Sandbox Code Playgroud)

传递@user_id_list的值是我的主要关注点.

sql sql-server stored-procedures

31
推荐指数
5
解决办法
7万
查看次数

如何避免获取此列错误列错误列名称列错误?

如何避免获取此MySQL错误列topic_id的列说明符不正确

MySQL错误......

#1063 - Incorrect column specifier for column 'topic_id'
Run Code Online (Sandbox Code Playgroud)

SQL架构......

CREATE TABLE discussion_topics (
    topic_id char(36) NOT NULL AUTO_INCREMENT,
    project_id char(36) NOT NULL,
    topic_subject VARCHAR(255) NOT NULL,
    topic_content TEXT default NULL,
    date_created DATETIME NOT NULL,
    date_last_post DATETIME NOT NULL,
    created_by_user_id char(36) NOT NULL,
    last_post_user_id char(36) NOT NULL,
    posts_count char(36) default NULL,
    PRIMARY KEY (topic_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
Run Code Online (Sandbox Code Playgroud)

mysql sql ddl auto-increment

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

使用什么而不是Class.newInstance()?

Class.newInstance()被标记为已弃用.文档没有提出任何替代方案.我们现在打算如何创建实例?

java reflection

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

Oracle中的DATEDIFF函数

我需要使用Oracle,但DATEDIFF函数在Oracle DB中不起作用.

如何在Oracle中编写以下代码?我看到了一些使用INTERVAL或TRUNC的例子.

SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff;
Run Code Online (Sandbox Code Playgroud)

sql oracle select datediff

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

如何将git commit消息分成多行?

当我git log用来检查我的提交解释性说明时

1. what I changed
2. blank line
3. why I changed it
Run Code Online (Sandbox Code Playgroud)

在3行不像1. what i changed 2. blank line 3. why i changed只在1行.

git commit

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

如何在包含中使用@EqualsAndHashCode - Lombok

如何使用@EqualsAndHashCodeWith Include,用于 Java 的 Lombok 库。

@EqualsAndHashCode.Include( )
Run Code Online (Sandbox Code Playgroud)

如何让 Equals 比较类 ID?

例子:

@EqualsAndHashCode.Include( )
@Table(name = "USER")
public class User
{

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "IDENTITY_USER")
  private Long identity;
}
Run Code Online (Sandbox Code Playgroud)

java equals hashcode lombok

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

如何将草稿推送到Gerrit?

我无法将草稿推向格里特.当我尝试将草稿推向gerrit时,它会抛出以下错误.

[3:37 pm] [myrepo] - > git push origin HEAD:refs/drafts/remote计数对象:167,完成.

Delta压缩使用多达8个线程.

压缩对象:100%(80/80),完成.

写作对象:100%(124/124),58.19 KiB,完成.

总计124(delta 75),重复使用47(delta 32)

远程:解决增量:34%(26/75)

要ssh:// myrepo![远程拒绝] HEAD - > refs/drafts/remote(Gerrit禁止)

错误:未能将某些引用推送到'ssh:// myrepo'

有人可以在这个问题上帮助我吗?

git gerrit

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

用于获取最近3个月数据的SQL查询

你怎么能得到今天的日期并将其转换为01/mm /yyyy格式并从3个月前的交货月份中获取数据?表已包含交货月份01/mm/yyyy.

sql sql-server select date sql-server-2008

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

如何在我的WordPress网站上放置Stack Overflow的小部件?

我想在我的WordPress网站上使用Stack Overflow小部件.

我怎样才能做到这一点?

wordpress widget

23
推荐指数
2
解决办法
2928
查看次数