小编And*_*wKS的帖子

重新安装Homebrew的最佳/最安全的方法是什么?

我在Homebrew中遇到权限问题:在我安装Node并尝试使用curl命令安装npm后,Homebrew告诉你使用它,它会因EACCESS错误而失败.我检查了节点文件夹,权限是a)用户无法拥有(我必须知道它)和b)没有写权限(我不得不chmod 755).

我已经修复了NPM的问题,但我不得不将其安装脚本作为sudo运行(这很糟糕!).

我假设我必须以root用户或类似方式安装Homebrew.我希望重新安装将解决它,但我找不到如何重新安装Homebrew的来源.

当我在终端中重新运行安装程序时,我得到:

/usr/local/.git already exists!
Run Code Online (Sandbox Code Playgroud)

macos homebrew

63
推荐指数
5
解决办法
11万
查看次数

使用围绕XML存储的对象的无类型包装类,这是不是很糟糕?

class MyThing {
    protected HashMap<String,Object> fields;

    protected MyThing(HashMap<String,Object> newFields){
        fields.putAll(newFields);
    }

    protected Object get(String key){
        return fields.get(key);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在有点背景.我使用这个类作为一个超类来代表一堆不同的类,它们代表XML文件中的对象.这基本上是API包装器的实现,我将其用作API中的解析XML和数据库之间的适配器.转换被委托给get方法的调用者.如果子类在创建时或者返回变量时需要执行某些操作,则只需调用super,然后操作之后返回的内容.例如.:

class Event extends MyThing {       
    public Event(HashMap<String,Object> newFields){
        super(newFields);

        // Removes anything after an @ symbol in returned data
        Pattern p = Pattern.compile("\\@.*$");
        Matcher m = p.matcher((String)fields.get("id"));
        boolean result = m.find();

        if (result)
            fields.put("id", m.replaceFirst(""));
        }
    }

    public Object get(String key){
        Object obj = super(key);

        if (key.equals("name")){
            return "Mr./Mrs. " + ((String)obj);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我觉得我应该这样做的原因是因为它们具有不同的属性,所以我不必为每个子类编写getId,getName,getWhatever方法.它可以节省时间,而且非常自我解释.

现在这显然是"unJavalike",而且更像是一种半语言的做事方式,但是有理由说我绝对不应该这样做吗?

java types

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

int32_t到NSInteger转换是否有任何问题?

我正在使用数据类型int32_t为iOS创建一个位掩码.然后将其设置为接受NSInteger的变量.这没有像预期的那样抛出编译时错误,但我想知道 - 是否有某种方式可能导致将来运行时错误?

casting objective-c int32 nsinteger

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

标签 统计

casting ×1

homebrew ×1

int32 ×1

java ×1

macos ×1

nsinteger ×1

objective-c ×1

types ×1