小编tMJ*_*tMJ的帖子

在`@ Bean`方法上使用`@ ConfigurationProperties`注释

有人可以给出一个如何@ConfigurationProperties直接在@Bean方法上使用注释的MWE 吗?

我已经看到无数的例子用于类定义 - 但还没有用于@Bean方法的例子.

引用文档:

  • 这种添加到一个类定义或一个@Bean方法
  • @Target(value = {TYPE,METHOD })

所以,我认为有一种可能性和预期用途 - 但不幸的是我无法弄明白.

java spring spring-boot

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

Prolog累加器.它们真的是一个"不同"的概念吗?

我正在我的人工智能实验室学习Prolog,从源头学习Prolog Now!.

在第5章中,我们来了解累加器.作为示例,给出了这两个代码片段. 查找列表的长度

没有累加器:

len([],0).
len([_|T],N) :- len(T,X), N is X+1.
Run Code Online (Sandbox Code Playgroud)

与累加器:

accLen([_|T],A,L) :- Anew is A+1, accLen(T,Anew,L).
accLen([],A,A).
Run Code Online (Sandbox Code Playgroud)

我无法理解,这两个片段在概念上有何不同?累加器到底有什么不同?有什么好处?

蓄能器听起来像中间变量.(如果我错了,请纠正我.)到目前为止,我已经在我的程序中使用过它们,所以它真的是一个很大的概念吗?

recursion tail-recursion prolog accumulator

9
推荐指数
3
解决办法
3968
查看次数

如何在windbg中设置不会停止执行程序的断点只记录调用的函数

我正在调试一个Windows组件,并希望查看被调用的特定dll的所有函数(也按照它们被调用的确切顺序).我可以通过将组件附加到windbg并在所讨论bm *module_name!*dll的所有导出函数()上设置断点来实现此目的.

这按预期工作.每当调用该dll的导出函数时,windbg就会中断执行并在屏幕上打印有关被击中断点的信息.之后我可以通过按F5或给出go命令手动恢复执行.

问题: dll的某些功能必须非常快速地(立即)返回,否则组件崩溃.在这种情况下,断点会导致组件崩溃.我可以删除有问题的断点,但之后就不会有被击中的日志.

我环顾四周,发现每当遇到断点时我都可以运行命令.bm module_name!func_name ".printf \"func_name\n\";gc"但这对每个导出的函数都不可行.该DLL有大约100个导出函数.

我可以做什么来记录(在屏幕上)每个被击中的导出函数(即使断点数也可以做,如果没有别的办法可以做).我可以在printf命令中使用变量名称来打印函数名称(如果不是函数名称,还可以使用断点号)?

windbg breakpoints

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

如何编写 python 脚本来不断尝试网页直到打开

我们正在等待姐姐的结果。印度政府也经常遇到这种情况。服务器很慢,流量很大。

于是,我想到写一个python程序,不断尝试,直到服务器响应Http请求。但该程序:

import urllib
i=1
f = open("C:/Users/DELL/Desktop/neetpg.html",'w')
while(True):
    try:
        page = urllib.urlopen("http://www.nbe.gov.in/asr/neet_pdf/")
        print "Done"
        break
    except:
        print i
        i += 1
        continue
f.write(page.read())

print "check"
Run Code Online (Sandbox Code Playgroud)

但该程序无法正常运行。我尝试将 url 替换为facebook.com,它仍然打印出数字。

此外,我想要实现的是,如果服务器确实响应,则网页会加载 js 和 css 文件以及 html 文件,并且所有这些都应该在浏览器中打开。

我还从http://docs.python.org/2/library/webbrowser.html中得到了提示 ,并将程序更改为:

import webbrowser
i=1
while(True):
    try:
        webbrowser.open("http://www.nbe.gov.in/asr/neet_pdf/")
        print "Done"
        break
    except:
        print i
        i += 1
        continue
print "check"
Run Code Online (Sandbox Code Playgroud)

但所有这一切都是在我的默认网络浏览器中打开一个新窗口,并将网址设置为给定的内容,然后“打开它”。同时,在 python shell 上打印 Done 和 Check。

Web 浏览器未收到服务器的响应,将显示could not connect to www.nbe.gov.in

如何实现这一目标?

编辑:刚刚看到 facebook.com 脚本毕竟有效。大约尝试了 15 …

python urllib python-2.7 python-webbrowser

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

按此按钮时,我正在尝试显示吐司.但是代码不起作用

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



    Button btn = (Button) findViewById(R.id.button1);
    btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            EditText text = (EditText)findViewById(R.id.editText1);
            EditText text1 = (EditText)findViewById(R.id.editText2);
            String userid = text.getText().toString();
            String pass = text1.getText().toString();
        Toast.makeText(getBaseContext(),"Entered"+userid+"and password entered is"+pass,Toast.LENGTH_SHORT).show();
        }

    });

}
Run Code Online (Sandbox Code Playgroud)

代码执行成功,但按下按钮时没有任何反应.当我专注于eclipse中的那一行时,它会说以下内容

"The method makeText(Context, CharSequence, int) in the type Toast is not applicable for the arguments (new 
 View.OnClickListener(){}, String, int)"
Run Code Online (Sandbox Code Playgroud)

请告诉我我需要做些什么来使它工作

android toast

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

使用新模板参数递归调用模板化函数

我试图在c ++中实现一些功能构造.想要实现一个功能,可以将任意级别的列表列表缩小.

template<typename T, typename R>
struct Fold{
    typedef R(*func)(T, R);
};


template<typename T>
T head(std::list<T> const& list) {
    return list.front();
}

template<typename T>
std::list<T> tail(std::list<T> list) {
    list.pop_front();
    return list;
}

template<typename T>
std::list<T> cons(T head, std::list<T> tail){
    tail.push_front(head);
    return tail;
}

template<typename T, typename ACCUM>
ACCUM foldl(typename Fold<T, ACCUM>::func function, ACCUM accum, std::list<T> list) {
    if(list.empty())
        return accum;

    return foldl(function, (*function)(head(list), accum), tail(list));
}

template<typename T, typename ACCUM>
ACCUM foldr(typename Fold<T, ACCUM>::func function, ACCUM accum, std::list<T> list) { …
Run Code Online (Sandbox Code Playgroud)

c++ templates functional-programming visual-c++

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

++运算符比|更昂贵 Erlang中的运算符?

我正在阅读Learn You Some Erlang,我在Recursion章节中找到了这个例子.

tail_sublist(_, 0, SubList) -> SubList;
tail_sublist([], _, SubList) -> SubList;
tail_sublist([H|T], N, SubList) when N > 0 -> 
tail_sublist(T, N-1, [H|SubList]).
Run Code Online (Sandbox Code Playgroud)

正如作者继续解释我们的代码中存在致命缺陷.因此产生的子列表将是反向的,我们将不得不重新反转它们以获得正确的输出.相反,我所做的是使用++运算符来避免以后反转列表.

sublist_tail([],_,Acc) -> Acc;
sublist_tail(_,0,Acc) -> Acc;
sublist_tail([H|T],N,Acc) -> sublist_tail(T,N-1,Acc++[H]).
Run Code Online (Sandbox Code Playgroud)

我的问题是,++不是运营商更昂贵的|运营商?如果是这样,与作者的解决方案(包括反转列表以获得正确的输出)相比,我的解决方案(使用++运算符)是否仍然会很慢?

erlang

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

XHR responseText是空字符串

Html页面:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>xhr</title>
</head>
<body>
    <script>
        var xhr_test = new XMLHttpRequest();
        xhr_test.open("GET","xhrtest",true);
        xhr_test.send();
        alert(xhr_test.responseText);
    </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

main.py文件:

import webapp2
from handlers import cookies,pages
application = webapp2.WSGIApplication([
        ('/xhr',pages.XHR),
        ('/xhrtest', cookies.XHRTest)
        ],
            debug=True)
Run Code Online (Sandbox Code Playgroud)

请求处理程序:

class XHRTest(webapp2.RequestHandler):
    def get(self):
        self.response.write('0')
Run Code Online (Sandbox Code Playgroud)

和,

class XHR(webapp2.RequestHandler):
    def get(self):
        f = open('static/html/xhr.html','r')
        self.response.write(f.read())
Run Code Online (Sandbox Code Playgroud)

现在,当我点击网址时localhost:8080/xhrtest,浏览器会立即将响应显示0为网页的内容.

点击localhost:8080/xhr间接命中的url ,/xhrtest在警告框中弹出一个空字符串(responseText是一个空字符串),但检查网络选项卡下的chrome的响应选项卡,我可以看到请求的响应是0.

那么为什么xhr_test.responseText不能显示相同的响应呢?

javascript google-app-engine xmlhttprequest webapp2

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

在python中删除列表中的项目

尝试删除列表中的项目,但没有成功.

>>> r = [1,2,3,4,5]
>>> for i in r:
    if i<3:
        del i


>>> print r
[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

我甚至尝试过滤它,

>>> def f(i):
    True if i>2 else False


>>> print list(filter(f,r))
[]
Run Code Online (Sandbox Code Playgroud)

我不明白为什么第一个不起作用.当我使用时,我根本不理解结果filter(function,iterable).

编辑:

看到保罗在下面的评论,现在我不明白为什么这样做.

>>> for i in r:
    if i<3:
        r.remove(i)


>>> print r
[3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

迭代器问题不应该仍然存在,并且代码不应该只删除第一个元素(r[0])

python list python-2.7

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

这个typedef语句有什么作用?

我正在浏览一些代码而无法理解以下代码.它有什么作用?这是什么意思?

typedef void*(*fun)[2];
fun new_array;
Run Code Online (Sandbox Code Playgroud)

c++ typedef

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

我可以自动将Windbg附加到进程并设置断点吗?

我正在调试一个如果执行停止甚至几毫秒就崩溃的Windows进程.(我不知道究竟有多少,但它肯定少于我的反应恢复过程所花费的时间.)

我知道我可以通过命令提示符启动一个windbg会话,通过键入来windbg -p PID启动GUI.但是我可以通过命令提示符进一步传递windbg命令,例如bm *foo!bar* ".frame;gc";g".

因为如果我可以将这些命令传递给它,我可以将它们写在.bat文件中并运行它.由于输入(甚至复制粘贴)命令,至少没有延迟.

windbg

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