小编Yan*_*yer的帖子

如何检查对远程Git存储库的写访问权限("我可以推送吗?")

我正在建立一个(有点受限)Git客户端.要设置存储库,请输入远程存储库的URL.我想检查用户是否具有对该存储库的读写访问权限.如果没有,我提出一个身份验证对话框.

我检查"读"访问git ls-remote <url>.

是否有一种类似的方法来检查'写'访问权限,而不首先克隆回购?(我知道我可以git clone <url>,然后git push --dry-run)

git github git-remote ls-remote

63
推荐指数
4
解决办法
6万
查看次数

检查某个异常类型是否是嵌套异常中的原因(原因等等)的最佳方法?

我正在编写一些JUnit测试,以验证是否抛出了类型MyCustomException的异常.但是,此异常多次包含在其他异常中,例如在InvocationTargetException中,而InvocationTargetException又包含在RuntimeException中.

什么是确定MyCustomException是否以某种方式导致我实际捕获的异常的最佳方法?我想做这样的事情(见下划线):


try {
    doSomethingPotentiallyExceptional();
    fail("Expected an exception.");
} catch (RuntimeException e) {
     if (!e.wasCausedBy(MyCustomException.class)
        fail("Expected a different kind of exception.");
}
Run Code Online (Sandbox Code Playgroud)

我想避免getCause()深入调用一些"层",以及类似的丑陋工作.有更好的方法吗?

(显然,Spring有NestedRuntimeException.contains(Class),它可以做我想要的 - 但我没有使用Spring.)

CLOSED: 好的,我猜有一个实用方法真的没有绕过:-)感谢所有回复的人!

java spring exception-handling exception nested-exceptions

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

映射数组仅修改与特定条件匹配的元素

在Ruby中,以某种方式映射数组的最具表现力的方式是什么?某些元素被修改而其他元素保持不变

这是一种直截了当的方式:

old_a = ["a", "b", "c"]                         # ["a", "b", "c"]
new_a = old_a.map { |x| (x=="b" ? x+"!" : x) }  # ["a", "b!", "c"]
Run Code Online (Sandbox Code Playgroud)

如果不够的话,当然会省略"单独"的情况:

new_a = old_a.map { |x| x+"!" if x=="b" }       # [nil, "b!", nil]
Run Code Online (Sandbox Code Playgroud)

我想要的是这样的:

new_a = old_a.map_modifying_only_elements_where (Proc.new {|x| x == "b"}) 
        do |y|
          y + "!"
        end
# ["a", "b!", "c"]
Run Code Online (Sandbox Code Playgroud)

有没有一些很好的方法在Ruby中执行此操作(或者Rails有一些我还没有找到的方便方法)?


谢谢大家的回复.虽然你总是说服我最好只使用map三元运算符,但有些人发布了非常有趣的答案!

ruby iteration map collect

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

带有null参数的Java方法调度

为什么它(显然)有所作为是否我通过null直接作为参数,或者传递一个Object,我分配的价值 null

Object testVal = null;
test.foo(testVal);    // dispatched to foo(Object)
// test.foo(null);    // compilation problem -> "The method foo(String) is ambiguous"   

public void foo(String arg) { // More-specific
    System.out.println("foo(String)");
}

public void foo(Object arg) { // Generic
    System.out.println("foo(Object)");
}
Run Code Online (Sandbox Code Playgroud)

换句话说,为什么第二次调用(已注释掉)foo(...)未调度到foo(Object)

更新:我使用Java 1.6.我可以毫无问题地编译Hemal的代码,但我仍然无法编译.我看到的唯一区别是,Hemal的方法是静态的,而我的方法则不是.但我真的不明白为什么这应该有所作为......?

更新2:解决了.我的班级中有另一个方法foo(Runnable),因此调度员无法明确地选择最具体的方法.(请参阅我在Hemal的第二个答案中的评论.)感谢大家的帮助.

java null method-dispatch

13
推荐指数
1
解决办法
5718
查看次数

如何在Objective-C中将本地"变量"声明为final?

在Java中,我可以将本地"变量"声明为final,例如

void myMethod() {
    final String foo = "Hello World!";
    foo = "Bye-bye..."; // compile error!!
    return;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试更改其值时,从编译器中获取错误.我想宣布一些我的本地"变量"最终,以避免意外改变它们的价值.

这在Objective-C中是否可行?

variables final objective-c

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

你如何测试你的Cocoa GUI?

我想为我的Cocoa程序的GUI编写一些测试.

Cocoa应用程序有没有好的GUI测试框架?我发现的唯一的东西是Squish,其价格为2.400欧元,远远超出我的预算......

有任何想法吗?如何测试你的可可的GUI?

testing cocoa gui-testing

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

最佳实践:处理tableview单元格内按钮的操作?

我有一个"联系人列表"表格视图,其中包含一个"联系人"单元格,其中包含一个电子邮件按钮,在点击时,应该向电子邮件编写者显示该联系人的电子邮件地址.

将UIButton与该单元格的"联系"实例相关联的最佳方法是什么?

我已经为脑海中出现的两种方法创造了答案 - 但我并不满意.您更喜欢哪个,或者更好,哪个更好!

uitableview uikit ios uicollectionview

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

转换为在运行时确定的类

我有一个方法fetchObjects(String),期望返回一个Contract业务对象数组.该className参数告诉我应该返回什么样的业务对象(当然这在这个解释的情况下没有意义,因为我已经说过我将返回Contracts,但它基本上是我在真实场景中的情况).所以我从某处获取了一组条目并加载了集合条目的类(其类型由其指定className).

现在我需要构造要返回的数组,所以我使用SettoArray(T[])方法.使用反射,我构建了一个空的Contracts数组.但是,这给了我一个静态类型的值Object!接下来我需要将它转换为适当的类型,在本例中是Contract[](参见下面列表中的"带星号 - 下划线"部分).

我的问题是:有没有一种方法,以及如何Contract[]在列表中进行转换,Contract仅通过className(或entriesType)确定数组元素的类型()?换句话说,我想要做的就是基本上像这样::(entriesType[]) valueWithStaticTypeObject,其中entriesType被通过classname参数指定的类替换,即Contract.

这在某种程度上是不可能的,或者它可以以某种方式完成吗?也许使用泛型?

package xx.testcode;

import java.util.HashSet;
import java.util.Set;

class TypedArrayReflection {

    public static void main(String[] args) {
        try {
            Contract[] contracts = fetchObjects("Contract");
            System.out.println(contracts.length);
        } catch (ClassNotFoundException e) {}
    }

    static Contract[] fetchObjects(String className) throws ClassNotFoundException {
        Class<?> …
Run Code Online (Sandbox Code Playgroud)

java generics reflection casting reification

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

[myArray addObject:[[objcBlock copy] autorelease]]在dealloc'ing数组时崩溃

我写了一个类来声明性地描述一系列UIView动画.我的方法采用了一系列动画块并将它们放在一个数组中.所以在我的循环中我想这样做:

[animations addObject:[[block copy] autorelease]];
Run Code Online (Sandbox Code Playgroud)

我首先copy阻止它移动到堆中,允许它被retain数组所驱动.然后我自动释放它以放弃所有权(因为数组保留它).

但是,当动画数组被释放时,这会崩溃.(我的理解是引用的块已经被释放了.)

奇怪的是,有效:

[animations addObject:[block copy]];
[block release];
Run Code Online (Sandbox Code Playgroud)

更新: - ......就像这样:

[animations addObject:[block copy]];
[block autorelease];
Run Code Online (Sandbox Code Playgroud)

为什么?我原本期望所有3个代码片段同样有效.任何解释?

objective-c autorelease objective-c-blocks

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

如何"自定义"基于块的UIView动画?

我的自定义控件有一个方法-setValue:animated:,它带有一个animated标志.

在iOS 4之前,我会编写动画:

if (animated) {
    [UIView beginAnimations:@"Foo"];
    [UIView setAnimationDuration:5.0];
}
// ... layout views ...
if (animated) {
    [UIView commitAnimations];
}
Run Code Online (Sandbox Code Playgroud)

现在我写了这个:

[UIView animateWithDuration:(animated ? 5.0 : 0.0) animations:^{
    // ... layout views ...
}];
Run Code Online (Sandbox Code Playgroud)

但是:这导致一些元素没有动画!

我称这个方法不止一次(第一次没有,第二次用动画),所以第二次动画被取消,将我的新帧设置为"硬"(没有动画).

如何使用块方法实现可选动画?

uiview uiviewanimation ios4 objective-c-blocks

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