您使用什么约定来评论getter和setter?这是我一直想知道的事情,例如:
/**
* (1a) what do you put here?
* @param salary (1b) what do you put here?
*/
public void setSalary(float salary);
/*
* (2a) what do you put here?
* @return (2b)
*/
public float getSalary();
Run Code Online (Sandbox Code Playgroud)
我总是发现我为1a/b和2a/b编写完全相同的东西,例如1a)设置雇员的工资,1b)雇员的工资.这似乎是多余的.现在我可以看到更复杂的东西,你可以在(a)部分写更多内容,给出上下文,但对于大多数的getter/setter,那里的措辞几乎完全相同.
我只是好奇,如果对于简单的getter/setter,只需填写(a)部分或(b)部分即可.
你怎么看?
简短问题:同构函数在编程中的重要性是什么(即在函数式编程中)?
很长的问题:我试图根据我不时听到的一些术语,在类别理论中绘制函数式编程和概念之间的一些类比.从本质上讲,我正在尝试将该术语"解包"成具体的东西然后我可以扩展.然后,我将能够使用该术语,理解我正在谈论的那些 - 我正在谈论什么.这总是很好.
我一直听到的这些术语之一是同构,我收集的是关于函数或函数组合之间等价的推理.我想知道是否有人可以提供一些常见模式的一些见解,其中同构的属性派上用场(在函数式编程中),以及获得的任何副产品,例如从同构函数推理的编译器优化.
我正处于从Scala 2.10.x升级到2.11.2的过程中,我收到以下警告,其中包含以下代码:
override def validateKey(key: String): Either[InvalidKeyError, Unit] =
keys.contains(key) match {
case true => Right()
case false => Left(InvalidKeyError(context, key))
}
Run Code Online (Sandbox Code Playgroud)
插入()的参数列表的改编已被弃用:这不太可能是您想要的.签名:Right.apply [A,B](b:B):scala.util.Right [A,B]给定参数:改编后:右(():单位)
我可以通过将"true"case语句更改为:
case true => Right(()) //() is a shortcut to a Unit instance
Run Code Online (Sandbox Code Playgroud)
这是解决此警告的正确方法吗?
编辑:也许是"为什么我们现在必须这样做"类型的答案是合适的,我粗略的调查似乎表明Scala在认为需要引起其他问题时插入"单元"
所以我有一个项目,我定期发布maven没有问题.我现在想要提供这个项目的SNAPSHOT版本.所以我做'mvn clean deploy'.一切正常,如下所示:
[INFO]从sonatype-nexus-snapshots中检索以前的内部版本号上传:https://oss.sonatype.org/content/repositories/snapshots/me/soliveirajr/menta-regex/0.9.6-SNAPSHOT/menta-regex-0.9 .6-20111010.153035-2.jar 5K上传(menta-regex-0.9.6-20111010.153035-2.jar)
我去我的sonatype经理,我可以找到快照:
但是现在当我尝试使用这个快照作为对另一台机器中某些其他项目的依赖时,我得到:
<dependency>
<groupId>me.soliveirajr</groupId>
<artifactId>menta-regex</artifactId>
<version>0.9.6-SNAPSHOT</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
失踪:
1)me.soliveirajr:menta-regex:jar:0.9.6-SNAPSHOT
尝试从项目网站手动下载文件.
然后,使用以下命令安装它:mvn install:install-file -DgroupId = me.soliveirajr -DartifactId = menta-regex -Dversion = 0.9.6-SNAPSHOT -Dpackaging = jar -Dfile =/path/to/file
或者,如果您拥有自己的存储库,则可以在那里部署文件:mvn deploy:deploy-file -DgroupId = me.soliveirajr -DartifactId = menta-regex -Dversion = 0.9.6-SNAPSHOT -Dpackaging = jar -Dfile =/path/to/file -Durl = [url] -DrepositoryId = [id]
那么如何强制maven将SNAPSHOT版本下载到我的本地(.m2)存储库?
我有一个问题,我的UITableView(组样式)在它的圆角上方有一个黑色的"尖端".
我正在设置tableview的背景,如下所示:
[meetingTableView setBackgroundColor:[[UIColor alloc] initWithPatternImage:[[UIImage alloc] initWithContentsOfFile:@"background.png"]]];
Run Code Online (Sandbox Code Playgroud)
我的表视图最终看起来像这样:
圆角上的黑色尖尖边缘http://papernapkin.org/pastebin/resource/images/imageEntryId/6487
我有什么想法可以摆脱那些黑点?
注意:如果您只想跳过上下文,请跳至下面的"问题"
在谈论Scala时,我几乎给出了"玩具问题",如下面的部分应用函数的例子.
def multiply(x:Int, y:Int): Int = x * y
val x5 = multiply(5, _:Int)
x5(10) //produces 50
Run Code Online (Sandbox Code Playgroud)
这个例子确实有帮助,但是我很难解释一般情况"这是当你认识何时使用部分应用函数时".
问题:任何人都有自己的成功解释部分应用函数的方法,这些函数真正适用于Java(或其他OO语言)开发人员?
注意:如果您只想跳过上下文,请跳至下面的"问题"
在谈论Scala时我几乎总是肯定会被问到"但你什么时候会使用Closure?" 通常我会说"等到我向你展示一个理解",然后我会展示如何将for comprehension归结为使用flatMap/map +闭包.
这个例子确实有帮助,但是我很难解释一般情况"这是你何时知道何时使用闭包".这是你在函数式编程中"习惯"的东西之一,你几乎不用思考就可以了.
通常,当我谈论Scala时,我正在与Java开发人员交谈,而且我想到的一个类比是"你知道什么时候创建一个匿名内部类,需要在定义类的上方某处访问变量?这就像一个闭包".所以我使用事件回调处理作为一个特定示例(因为在该场景中不可避免地使用匿名内部类).
考虑到观众(没有经验,或者对FP的经验有限),我不再继续讨论像Monads这样的术语,这些人通常会寻找他们可以联系到的具体/实用的例子.
问题: 任何人都有自己的方法来成功解释真正适合Java(或其他OO语言)开发人员的闭包吗?
简单的问题,我正在开发一个注册自己的URL Scheme的应用程序.我计划通过一个人最喜欢的QRCode阅读器使用QRCode启动应用程序.
我的问题:如果我的iPhone/iPad上还没有安装我的应用程序,会发生什么?他们会被引导到App Store下载我的应用吗?或者它会失败吗?
我现在不在我的Mac上,否则我会构建一个测试应用程序来启动我知道未安装的应用程序的URL.如果我在有人回答之前回到我的Mac,我会用我的结果更新问题.
我的应用程序中有以下工作流程:
此时,发生以下两种情况之一:
[我从不想要这种行为] - 如果用户只登录了一个Google帐户(例如gmail,Google Apps for Domains等等),则系统永远不会要求用户选择要关联的帐户.它只是假设他们想要使用他们登录的那个并继续它的快乐方式.
[我一直想要这种行为] - 如果用户未登录任何Google帐户,或者他们登录了多个Google帐户,则系统会要求他们选择要继续使用的帐户.
问题:即使用户当前登录到单个Google帐户,我还有办法强制用户选择帐户吗?
码:
private def getFlow() = {
if (flow == null) {
logger.info("Using OAuth client secrets file: " + GoogleOAuthService.CLIENT_SECRETS_JSON)
clientSecrets = GoogleClientSecrets.load(JacksonFactory.getDefaultInstance(),
new InputStreamReader(getClass.getResourceAsStream(GoogleOAuthService.CLIENT_SECRETS_JSON)));
redirectUri = clientSecrets.getDetails().getRedirectUris().get(0)
flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport, JacksonFactory.getDefaultInstance(), clientSecrets, SCOPES).setDataStoreFactory(
dataStoreFactory).setAccessType("offline").setApprovalPrompt("force").build()
}
flow
}
def newAuthorizationUrl(userId: String) = {
val urlRequest = getFlow().newAuthorizationUrl()
urlRequest.setAccessType("offline")
.setRedirectUri(redirectUri).setState(userId).build()
}
Run Code Online (Sandbox Code Playgroud) 我有以下项目结构:
lazy val root = project.aggregate(rest,backend)
lazy val rest = project
lazy val backend = project
Run Code Online (Sandbox Code Playgroud)
当我从父级执行"运行"任务时,我想要"后端"项目中的特定类来main
执行其方法.我怎么做到这一点?