Middle-order batsman Thilan Samaraweera [ Images ] said his omission from the Test squad for the series against Bangladesh forced him to retire from international cricket.
The 36-year-old, who played 81 Tests and 53 ODIs, announced his retirement following a meeting with the national selectors.
"I was shocked with my omission from the squad against Bangladesh," he told reporters.
Samaraweera was excluded from the 16-man squad after being originally included in the 20-member probable.
"The selectors told me that their idea was to play only two senior players in the series against Bangladesh and the next series against Zimbabwe," he said.
"They told me that my experience would be needed for the Pakistan tour which is nine months away. I decided to retire because there is no point in waiting for nine months. This will clash with plans in my personal life.
"I respect the decision to go with young players and decided it is the right time to retire."
Samaraweera has already signed up with the English county team Worcestershire for this summer.
Since the tour to Australia [ Images ] in December, Sri Lanka has seen a thorough shake-up of the set-up.