小编lin*_*oob的帖子

Pyenv 无法检测 MacOS Catalina 上已安装的 python 版本

我有 MacOS Catalina,我继续brew install为最新版本python3.8.5 做了一个。然后我也发现pyenv并安装了它。我按照https://github.com/pyenv/pyenv#basic-github-checkout上的步骤3 进行操作,但仍然看不到pyenv.

我有 .zprofile 和 .zshrc 文件,想知道这是否会导致问题。这是我的echo $PATH-

/Users/pq0252/.pyenv/shims/shims:/Users/pq0252/.pyenv/shims/shims:/Users/pq0252/.pyenv/shims:/Library/Frameworks/Python.framework/Versions/3.8/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin 
Run Code Online (Sandbox Code Playgroud)

这是 pyenv 版本输出:

pyenv versions
* system (set by /Users/pq0252/.pyenv/shims/version) 
Run Code Online (Sandbox Code Playgroud)

内容如下.zprofile——

 #Setting PATH for Python 3.8.   
 #The original version is saved in .zprofile.pysave.   
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}"   
export PATH 
Run Code Online (Sandbox Code Playgroud)

这是.zshrc内容(这似乎是重复的if条件,尽管我只添加了一次,我认为这与pyenvgithub 上我们附加到它的步骤 3 有关?)。

export PYENV_ROOT="$HOME/.pyenv/shims"
export PATH="$PYENV_ROOT:$PATH"
export PIPENV_PYTHON="$PYENV_ROOT/python"
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv …
Run Code Online (Sandbox Code Playgroud)

python macos zshrc pyenv

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

Ruby - 基于另一个数组过滤哈希数组

我试图根据另一个数组过滤一个哈希数组.实现这一目标的最佳方法是什么?这是我现在的两个野兽:

x=[1,2,3]
y = [{dis:4,as:"hi"},{dis:2,as:"li"}]

1) aa = []
x.each do |a|
  qq = y.select{|k,v| k[:dis]==a}
  aa+=qq unless qq.empty?
end

2) q = []
y.each do |k,v|
  x.each do |ele|
    if k[:dis]==ele
      q << {dis: ele,as: k[:as]}
    end
  end
end 
Run Code Online (Sandbox Code Playgroud)

这是我想要的输出:

[{dis:2,as:"li"}]

ruby arrays

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

有效的Java项目16(第2版)-转发类是否仅用于允许重用?

我正在经历Effective Java, Item-16 Favor composition over inheritance。我看了Forwarding class下面的例子。

我想知道ForwardingSet上课有什么意义?InstrumentedSet可以很好地实现Set并拥有一个私有实例来调用所有方法。

如果InstrumentedSet将来我们最终拥有更多类似的类,这些类除了基本行为外还需要做一些事情,是否可以促进重用并防止冗余?仅仅是面向未来的设计还是我缺少的其他东西?

// Reusable forwarding class 
public class ForwardingSet<E> implements Set<E> {     
  private final Set<E> s;     
  public ForwardingSet(Set<E> s) { this.s = s; }     
  public void clear()               { s.clear();            }    
  public boolean contains(Object o) { return s.contains(o); }
...
}

// Wrapper class - uses composition in place of inheritance   
public class InstrumentedSet<E> extends ForwardingSet<E> {     
      private int addCount = …
Run Code Online (Sandbox Code Playgroud)

java oop effective-java

3
推荐指数
1
解决办法
193
查看次数

为什么从创建列表的方法返回unmodifiableList会更好?

 public List<Integer> getInts()
{
    List<Integer> xs = new ArrayList<Integer>();
    xs.add(1);
    // return Collections.unmodifiableList(xs);
    return xs;
}   
Run Code Online (Sandbox Code Playgroud)

我知道返回一个不可修改的列表将阻止消费者在列表引用中添加其他元素,但除此之外我通过将其包装在不可修改的列表中获得了什么?每次调用方法时,我都会创建一个新列表.

java collections java-7

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

我需要在 application.properties 中转义特殊字符吗?

我在数据源密码字段中有“(双引号)、@、~、!、%、&、}、] 等特殊字符。当我运行我的 springboot 应用程序并尝试连接到我遇到的数据库时 -

com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "problem accessing trust store"
Caused by: java.security.KeyStoreException: problem accessing trust store
Caused by: java.io.IOException: Keystore was tampered with, or password was incorrect
Caused by: java.security.UnrecoverableKeyException: Password verification failed
Run Code Online (Sandbox Code Playgroud)

我的问题是:
(1) 有没有办法查看 Spring 使用什么密码来尝试连接?
(2) 我需要转义密码中的任何特殊字符application.properties吗?

我能够使用独立的 java 程序连接到数据库,但我不得不转义密码中的双引号。我在后端使用 Springboot-2.0.4、Flyway-5.2.4、jdk 1.8 和 MS-SQL 服务器。

谢谢。

spring spring-boot application.properties

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

生产环境关闭开放API规范

我在这里看到了类似的答案Swagger 2.x- How do you close off swagger-ui in production所以我想知道是否也可以为开放 API 做类似的事情?我尝试过类似的东西:

@Configuration
@Profile("!prod")
public class OpenAPIConfig 
{
}
Run Code Online (Sandbox Code Playgroud)

但这行不通。有什么想法/建议吗?

java spring spring-boot openapi

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