Effacer les filtres
Effacer les filtres

Function handle invoking Java reports syntax error?

2 vues (au cours des 30 derniers jours)
Ahmed Fasih
Ahmed Fasih le 6 Mar 2012
Why does
d='.'; mylength = length(java.io.File(d).listFiles(org.apache.commons.io.filefilter.WildcardFileFilter('*.dat')))
work, but a function handle for input "d" fail with a syntax error?
length_func = @(d) length(java.io.File(d).listFiles(org.apache.commons.io.filefilter.WildcardFileFilter('*.dat')))
??? Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.
  1 commentaire
Ahmed Fasih
Ahmed Fasih le 7 Mar 2012
This following does work:
helper=@(f) f.listFiles(org.apache.commons.io.filefilter.WildcardFileFilter('*.dat'))
length_func = @(d) length(helper(java.io.File(d)))

Connectez-vous pour commenter.

Réponses (1)

Laurens Bakker
Laurens Bakker le 7 Mar 2012
Hi Ahmed,
anonymous functions are not allowed to store any data, and accessing a field of java.io.File(d) probably implicitly does this.
Cheers,
Laurens

Catégories

En savoir plus sur Startup and Shutdown dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by